diff --git a/spec/models/legislation/process/phase_spec.rb b/spec/models/legislation/process/phase_spec.rb new file mode 100644 index 000000000..a92b36f78 --- /dev/null +++ b/spec/models/legislation/process/phase_spec.rb @@ -0,0 +1,99 @@ +require 'rails_helper' + +RSpec.describe Legislation::Process::Phase, type: :model do + let(:process) { create(:legislation_process) } + + describe "#enabled?" do + it "checks debate phase" do + expect(process.debate_phase.enabled?).to be true + + process.update_attributes(debate_start_date: nil, debate_end_date: nil) + expect(process.debate_phase.enabled?).to be false + end + + it "checks allegations phase" do + expect(process.allegations_phase.enabled?).to be true + + process.update_attributes(allegations_start_date: nil, allegations_end_date: nil) + expect(process.allegations_phase.enabled?).to be false + end + end + + describe "#started?" do + it "checks debate phase" do + # future + process.update_attributes(debate_start_date: Date.current + 2.days, debate_end_date: Date.current + 3.days) + expect(process.debate_phase.started?).to be false + + # started + process.update_attributes(debate_start_date: Date.current - 2.days, debate_end_date: Date.current + 1.day) + expect(process.debate_phase.started?).to be true + + # starts today + process.update_attributes(debate_start_date: Date.current, debate_end_date: Date.current + 1.day) + expect(process.debate_phase.started?).to be true + + # past + process.update_attributes(debate_start_date: Date.current - 2.days, debate_end_date: Date.current - 1.day) + expect(process.debate_phase.started?).to be true + end + + it "checks allegations phase" do + # future + process.update_attributes(allegations_start_date: Date.current + 2.days, allegations_end_date: Date.current + 3.days) + expect(process.allegations_phase.started?).to be false + + # started + process.update_attributes(allegations_start_date: Date.current - 2.days, allegations_end_date: Date.current + 1.day) + expect(process.allegations_phase.started?).to be true + + # starts today + process.update_attributes(allegations_start_date: Date.current, allegations_end_date: Date.current + 1.day) + expect(process.allegations_phase.started?).to be true + + # past + process.update_attributes(allegations_start_date: Date.current - 2.days, allegations_end_date: Date.current - 1.day) + expect(process.allegations_phase.started?).to be true + end + end + + describe "#open?" do + it "checks debate phase" do + # future + process.update_attributes(debate_start_date: Date.current + 2.days, debate_end_date: Date.current + 3.days) + expect(process.debate_phase.open?).to be false + + # started + process.update_attributes(debate_start_date: Date.current - 2.days, debate_end_date: Date.current + 1.day) + expect(process.debate_phase.open?).to be true + + # starts today + process.update_attributes(debate_start_date: Date.current, debate_end_date: Date.current + 1.day) + expect(process.debate_phase.open?).to be true + + # past + process.update_attributes(debate_start_date: Date.current - 2.days, debate_end_date: Date.current - 1.day) + expect(process.debate_phase.open?).to be false + end + + it "checks allegations phase" do + + # future + process.update_attributes(allegations_start_date: Date.current + 2.days, allegations_end_date: Date.current + 3.days) + expect(process.allegations_phase.open?).to be false + + # started + process.update_attributes(allegations_start_date: Date.current - 2.days, allegations_end_date: Date.current + 1.day) + expect(process.allegations_phase.open?).to be true + + # starts today + process.update_attributes(allegations_start_date: Date.current, allegations_end_date: Date.current + 1.day) + expect(process.allegations_phase.open?).to be true + + # past + process.update_attributes(allegations_start_date: Date.current - 2.days, allegations_end_date: Date.current - 1.day) + expect(process.allegations_phase.open?).to be false + end + end + +end diff --git a/spec/models/legislation/process/publication_spec.rb b/spec/models/legislation/process/publication_spec.rb new file mode 100644 index 000000000..4731d14b2 --- /dev/null +++ b/spec/models/legislation/process/publication_spec.rb @@ -0,0 +1,81 @@ +require 'rails_helper' + +RSpec.describe Legislation::Process::Publication, type: :model do + let(:process) { create(:legislation_process) } + + describe "#enabled?" do + it "checks draft publication" do + expect(process.draft_publication.enabled?).to be true + + process.update_attributes(draft_publication_date: nil) + expect(process.draft_publication.enabled?).to be false + end + + it "checks result publication" do + expect(process.result_publication.enabled?).to be true + + process.update_attributes(result_publication_date: nil) + expect(process.result_publication.enabled?).to be false + end + end + + describe "#started?" do + it "checks draft publication" do + # future + process.update_attributes(draft_publication_date: Date.current + 2.days) + expect(process.draft_publication.started?).to be false + + # past + process.update_attributes(draft_publication_date: Date.current - 2.days) + expect(process.draft_publication.started?).to be true + + # starts today + process.update_attributes(draft_publication_date: Date.current) + expect(process.draft_publication.started?).to be true + end + + it "checks result publication" do + # future + process.update_attributes(result_publication_date: Date.current + 2.days) + expect(process.result_publication.started?).to be false + + # past + process.update_attributes(result_publication_date: Date.current - 2.days) + expect(process.result_publication.started?).to be true + + # starts today + process.update_attributes(result_publication_date: Date.current) + expect(process.result_publication.started?).to be true + end + end + + describe "#open?" do + it "checks draft publication" do + # future + process.update_attributes(draft_publication_date: Date.current + 2.days) + expect(process.draft_publication.open?).to be false + + # past + process.update_attributes(draft_publication_date: Date.current - 2.days) + expect(process.draft_publication.open?).to be true + + # starts today + process.update_attributes(draft_publication_date: Date.current) + expect(process.draft_publication.open?).to be true + end + + it "checks result publication" do + # future + process.update_attributes(result_publication_date: Date.current + 2.days) + expect(process.result_publication.open?).to be false + + # past + process.update_attributes(result_publication_date: Date.current - 2.days) + expect(process.result_publication.open?).to be true + + # starts today + process.update_attributes(result_publication_date: Date.current) + expect(process.result_publication.open?).to be true + end + end +end