153 lines
4.8 KiB
Ruby
153 lines
4.8 KiB
Ruby
require 'spec_helper'
|
|
|
|
RSpec.describe Meeting, :type => :model do
|
|
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
|
|
|