forked from bofh/fetsite
increase test coverage for meetings
This commit is contained in:
@@ -1,10 +1,10 @@
|
||||
FactoryGirl.define do
|
||||
factory :meeting do
|
||||
name "MyString"
|
||||
desc "MyText"
|
||||
parent nil
|
||||
intern false
|
||||
meetingtyp nil
|
||||
desc "MyText"
|
||||
parent nil
|
||||
intern false
|
||||
meetingtyp nil
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
FactoryGirl.define do
|
||||
factory :meetingtyp do
|
||||
name "MyString"
|
||||
desc "MyText"
|
||||
agendaintern false
|
||||
protocolintern false
|
||||
desc "MyText"
|
||||
agendaintern false
|
||||
protocolintern false
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
@@ -1,5 +1,152 @@
|
||||
require 'spec_helper'
|
||||
|
||||
RSpec.describe Meeting, :type => :model do
|
||||
pending "add some examples to (or delete) #{__FILE__}"
|
||||
let(:user){FactoryGirl.create(:user)}
|
||||
let(:rubrik) {FactoryGirl.create(:rubrik)}
|
||||
let(:calendar){FactoryGirl.create(:calendar, rubrik_id: rubrik.id)}
|
||||
let(:calentry){FactoryGirl.build(:calentry, calendar_id: calendar.id, typ: 2)}
|
||||
let(:meetingtyp){FactoryGirl.create(:meetingtyp, rubrik_id: rubrik.id)}
|
||||
let(:meeting){FactoryGirl.build(:meeting, meetingtyp_id: meetingtyp.id)}
|
||||
|
||||
it "should be created" do
|
||||
meeting.calentry=calentry
|
||||
expect(meeting).to be_valid
|
||||
expect(meeting.save).to be true
|
||||
end
|
||||
it "should have a calendar" do
|
||||
meeting.calentry=calentry
|
||||
expect(meeting.calendar).not_to be_nil
|
||||
end
|
||||
it "should be able to create a calentry" do
|
||||
meeting.create_calentry
|
||||
meeting.calentry.start=1.hour.ago
|
||||
meeting.calentry.dauer=7
|
||||
expect(meeting).to be_valid
|
||||
end
|
||||
it "should be creating a calentry typ 2" do
|
||||
meeting.create_calentry
|
||||
expect(meeting.calentry.typ).to be 2
|
||||
end
|
||||
it "should be having an alias title for text" do
|
||||
expect(meeting.title).to eq(meeting.text)
|
||||
end
|
||||
it "should have a text that includes the name" do
|
||||
expect(meeting.title).to match meeting.name
|
||||
end
|
||||
it " creates a neuigkeit that is valid" do
|
||||
expect(meeting.neuigkeit).to be_nil
|
||||
meeting.create_announcement(user)
|
||||
expect(meeting.neuigkeit.class).to eq(Neuigkeit)
|
||||
expect(meeting.neuigkeit).to be_valid
|
||||
end
|
||||
it "fixes calentry before validation" do
|
||||
calentry.calendar=nil
|
||||
meeting.calentry=calentry
|
||||
meeting.valid?
|
||||
expect(meeting.calentry.calendar).to be meeting.meetingtyp.rubrik.calendar
|
||||
end
|
||||
it "updates the announcement if there is one" do
|
||||
meeting.calentry=calentry
|
||||
|
||||
expect(meeting.neuigkeit).to be_nil
|
||||
meeting.create_announcement(user)
|
||||
meeting.name="asdflkjhasdflkj"
|
||||
meeting.save
|
||||
meeting.update_announcement
|
||||
expect(meeting.neuigkeit.title).to match meeting.name
|
||||
end
|
||||
it "doesn't create an announcement by changing the name" do
|
||||
meeting.calentry=calentry
|
||||
expect(meeting.neuigkeit).to be_nil
|
||||
meeting.name="asdflkjhasdflkj"
|
||||
meeting.save
|
||||
expect(meeting.neuigkeit).to be_nil
|
||||
end
|
||||
it "can create a protocol" do
|
||||
expect(meeting.protocol).to be_nil
|
||||
meeting.create_protocol
|
||||
expect(meeting.protocol).not_to be_nil
|
||||
end
|
||||
it "creates a protocol only once" do
|
||||
meeting.create_protocol
|
||||
p=meeting.protocol
|
||||
meeting.protocol.text="TestTextTestTextForProtocol"
|
||||
meeting.create_protocol
|
||||
expect(meeting.protocol).to be p
|
||||
expect(meeting.protocol.text).to match "TestTextTestTextForProtocol"
|
||||
end
|
||||
it "can create a calendar entry" do
|
||||
expect(meeting.calentry).to be_nil
|
||||
meeting.create_calentry
|
||||
expect(meeting.calentry).not_to be_nil
|
||||
|
||||
end
|
||||
it "can create an agenda" do
|
||||
meeting.calentry=calentry
|
||||
|
||||
meeting.create_agenda
|
||||
a=meeting.agenda
|
||||
meeting.agenda.text="TestTextTestTextForProtocol"
|
||||
meeting.create_agenda
|
||||
expect(meeting.agenda).to be a
|
||||
expect(meeting.agenda.text).to match "TestTextTestTextForProtocol"
|
||||
end
|
||||
it "can be created with date and typ" do
|
||||
meeting2=Meeting.new_with_date_and_typ(nil, Date.today, meetingtyp)
|
||||
expect(meeting2.calentry).not_to be_nil
|
||||
expect(meeting2.meetingtyp).to be meetingtyp
|
||||
end
|
||||
it "gets empty text for nil protocol" do
|
||||
expect(meeting.protocol_text).to eq("")
|
||||
end
|
||||
it "gets empty text for nil agenda" do
|
||||
expect(meeting.agenda_text).to eq("")
|
||||
end
|
||||
|
||||
it "can safly access protocol text" do
|
||||
meeting.create_protocol
|
||||
meeting.protocol.text="TestTextTest TextForProtocol"
|
||||
expect(meeting.protocol_text).to eq("TestTextTest TextForProtocol")
|
||||
end
|
||||
it "can safly access agenda text" do
|
||||
meeting.create_agenda
|
||||
meeting.agenda.text="TestTextTest TextForProtocol"
|
||||
expect(meeting.agenda_text).to eq("TestTextTest TextForProtocol")
|
||||
end
|
||||
it "is public by default" do
|
||||
expect(meeting).to be_public
|
||||
end
|
||||
it "is not public if intern" do
|
||||
meeting.intern=true
|
||||
expect(meeting).not_to be_public
|
||||
end
|
||||
it "has a divid" do
|
||||
meeting.calentry=calentry
|
||||
meeting.save
|
||||
expect(meeting.divid).to match "meeting"
|
||||
expect(meeting.divid).to match meeting.id.to_s
|
||||
end
|
||||
it "can find start and end of a meeting by 'Beginn' und 'Ende'" do
|
||||
meeting.calentry=calentry
|
||||
calentry.start=2.hours.ago
|
||||
meeting.create_protocol
|
||||
meeting.protocol.text="Beginn: " + 1.hours.ago.to_s
|
||||
meeting.update_time_from_protocol
|
||||
expect(calentry.start).to be_within(1.minute).of 1.hours.ago
|
||||
|
||||
end
|
||||
it "has a text even without meetingtyp" do
|
||||
meeting.meetingtyp=nil
|
||||
meeting.parent=nil
|
||||
meeting.name="sdf"
|
||||
expect(meeting.text).to match("sdf")
|
||||
end
|
||||
it "has an empty text without meetingtyp, parent, calentry or name" do
|
||||
meeting.meetingtyp=nil
|
||||
meeting.parent=nil
|
||||
meeting.calentry=nil
|
||||
meeting.name=""
|
||||
expect(meeting.text).to eq("")
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
@@ -2,4 +2,27 @@ require 'spec_helper'
|
||||
|
||||
RSpec.describe Meetingtyp, :type => :model do
|
||||
pending "add some examples to (or delete) #{__FILE__}"
|
||||
let(:rubrik) {FactoryGirl.create(:rubrik)}
|
||||
let(:meetingtyp){FactoryGirl.build(:meetingtyp, rubrik_id: rubrik.id)}
|
||||
it "should be created" do
|
||||
expect(meetingtyp).to be_valid
|
||||
expect(meetingtyp.save).to be true
|
||||
end
|
||||
it "should not be valid without rubrik" do
|
||||
meetingtyp.rubrik=nil
|
||||
expect(meetingtyp.rubrik).to be_nil
|
||||
expect(meetingtyp).not_to be_valid
|
||||
expect(meetingtyp.save).to be_falsey
|
||||
end
|
||||
it "should not be valid without a name" do
|
||||
meetingtyp.name=nil
|
||||
expect(meetingtyp).not_to be_valid
|
||||
end
|
||||
|
||||
it "should return name for text" do
|
||||
expect(meetingtyp.text).to be meetingtyp.name
|
||||
end
|
||||
|
||||
|
||||
|
||||
end
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
# This file is copied to spec/ when you run 'rails generate rspec:install'
|
||||
require 'simplecov'
|
||||
SimpleCov.start
|
||||
ENV["RAILS_ENV"] ||= 'test'
|
||||
require 'rbconfig'
|
||||
|
||||
|
||||
@@ -1,18 +1,21 @@
|
||||
module ModelMacros
|
||||
def let_studium_lva
|
||||
let(:studium) {FactoryGirl.create(:studium)}
|
||||
let(:modulgruppe){FactoryGirl.create(:modulgruppe,studium_id: studium.id)}
|
||||
let(:modul) do
|
||||
m=FactoryGirl.build(:other_modul);
|
||||
m.modulgruppen << modulgruppe
|
||||
m.save!
|
||||
m
|
||||
end
|
||||
let(:lva) do
|
||||
l=FactoryGirl.build(:lva)
|
||||
l.modul << modul
|
||||
l.save!
|
||||
l
|
||||
end
|
||||
let(:studium) {FactoryGirl.create(:studium)}
|
||||
|
||||
let(:zerosemester) {FactoryGirl.create(:zero_semester,studium_id: studium.id)}
|
||||
let(:firstsemester) {FactoryGirl.create(:first_semester)}
|
||||
let(:modulgruppe){FactoryGirl.create(:modulgruppe,studium_id: studium.id)}
|
||||
let(:modul) do
|
||||
m=FactoryGirl.build(:other_modul)
|
||||
m.modulgruppen << modulgruppe
|
||||
m.save!
|
||||
m
|
||||
end
|
||||
let(:lva) do
|
||||
l=FactoryGirl.build(:lva)
|
||||
l.modul << modul
|
||||
l
|
||||
end
|
||||
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user