Add specs for Legislation::Process Phase and Publication enabled?/started?/open? methods

This commit is contained in:
Bertocq
2017-06-13 20:33:00 +02:00
parent 10954859c7
commit 12dc7a4790
2 changed files with 180 additions and 0 deletions

View File

@@ -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

View File

@@ -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