|
|
@ -5,17 +5,19 @@ RSpec.describe Form::Sales::Pages::LivingBeforePurchase, type: :model do |
|
|
|
|
|
|
|
|
|
|
|
let(:page_id) { nil } |
|
|
|
let(:page_id) { nil } |
|
|
|
let(:page_definition) { nil } |
|
|
|
let(:page_definition) { nil } |
|
|
|
let(:subsection) { instance_double(Form::Subsection) } |
|
|
|
let(:start_year) { 2022 } |
|
|
|
|
|
|
|
let(:form) { Form.new(nil, start_year, [], "sales") } |
|
|
|
|
|
|
|
let(:subsection) { instance_double(Form::Subsection, depends_on: nil, form:) } |
|
|
|
|
|
|
|
|
|
|
|
it "has correct subsection" do |
|
|
|
it "has correct subsection" do |
|
|
|
expect(page.subsection).to eq(subsection) |
|
|
|
expect(page.subsection).to eq(subsection) |
|
|
|
end |
|
|
|
end |
|
|
|
|
|
|
|
|
|
|
|
describe "questions" do |
|
|
|
describe "questions" do |
|
|
|
let(:subsection) { instance_double(Form::Subsection, form: instance_double(Form, start_date:)) } |
|
|
|
let(:subsection) { instance_double(Form::Subsection, form:, depends_on: nil) } |
|
|
|
|
|
|
|
|
|
|
|
context "when 2022" do |
|
|
|
context "when 2022" do |
|
|
|
let(:start_date) { Time.utc(2022, 2, 8) } |
|
|
|
let(:start_year) { 2022 } |
|
|
|
|
|
|
|
|
|
|
|
it "has correct questions" do |
|
|
|
it "has correct questions" do |
|
|
|
expect(page.questions.map(&:id)).to eq(%w[proplen]) |
|
|
|
expect(page.questions.map(&:id)).to eq(%w[proplen]) |
|
|
@ -23,7 +25,7 @@ RSpec.describe Form::Sales::Pages::LivingBeforePurchase, type: :model do |
|
|
|
end |
|
|
|
end |
|
|
|
|
|
|
|
|
|
|
|
context "when 2023" do |
|
|
|
context "when 2023" do |
|
|
|
let(:start_date) { Time.utc(2023, 2, 8) } |
|
|
|
let(:start_year) { 2023 } |
|
|
|
|
|
|
|
|
|
|
|
it "has correct questions" do |
|
|
|
it "has correct questions" do |
|
|
|
expect(page.questions.map(&:id)).to eq(%w[proplen_asked proplen]) |
|
|
|
expect(page.questions.map(&:id)).to eq(%w[proplen_asked proplen]) |
|
|
@ -39,15 +41,63 @@ RSpec.describe Form::Sales::Pages::LivingBeforePurchase, type: :model do |
|
|
|
expect(page.description).to be_nil |
|
|
|
expect(page.description).to be_nil |
|
|
|
end |
|
|
|
end |
|
|
|
|
|
|
|
|
|
|
|
it "has correct depends_on" do |
|
|
|
context "when routing" do |
|
|
|
expect(page.depends_on).to eq([{ "not_joint_purchase?" => true }, { "jointpur" => nil }]) |
|
|
|
context "with form before 2025" do |
|
|
|
end |
|
|
|
let(:start_year) { 2024 } |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
context "with joint purchase" do |
|
|
|
|
|
|
|
subject(:page) { described_class.new(page_id, page_definition, subsection, ownershipsch: 1, joint_purchase: true) } |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
it "routes to the page when joint purchase is true" do |
|
|
|
|
|
|
|
log = build(:sales_log, jointpur: 1) |
|
|
|
|
|
|
|
expect(page.routed_to?(log, nil)).to eq(true) |
|
|
|
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
it "does not route to the page when joint purchase is false" do |
|
|
|
|
|
|
|
log = build(:sales_log, jointpur: 2) |
|
|
|
|
|
|
|
expect(page.routed_to?(log, nil)).to eq(false) |
|
|
|
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
it "does not route to the page when joint purchase is missing" do |
|
|
|
|
|
|
|
log = build(:sales_log, jointpur: nil) |
|
|
|
|
|
|
|
expect(page.routed_to?(log, nil)).to eq(false) |
|
|
|
|
|
|
|
end |
|
|
|
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
context "with non joint purchase" do |
|
|
|
|
|
|
|
subject(:page) { described_class.new(page_id, page_definition, subsection, ownershipsch: 1, joint_purchase: false) } |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
it "routes to the page when joint purchase is false" do |
|
|
|
|
|
|
|
log = build(:sales_log, jointpur: 2) |
|
|
|
|
|
|
|
expect(page.routed_to?(log, nil)).to eq(true) |
|
|
|
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
|
|
context "with joint purchase" do |
|
|
|
it "does not route to the page when joint purchase is true" do |
|
|
|
subject(:page) { described_class.new(page_id, page_definition, subsection, ownershipsch: 1, joint_purchase: true) } |
|
|
|
log = build(:sales_log, jointpur: 1) |
|
|
|
|
|
|
|
expect(page.routed_to?(log, nil)).to eq(false) |
|
|
|
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
|
|
it "has correct depends_on" do |
|
|
|
it "routes to the page when joint purchase is missing" do |
|
|
|
expect(page.depends_on).to eq([{ "joint_purchase?" => true }]) |
|
|
|
log = build(:sales_log, jointpur: nil) |
|
|
|
|
|
|
|
expect(page.routed_to?(log, nil)).to eq(true) |
|
|
|
|
|
|
|
end |
|
|
|
|
|
|
|
end |
|
|
|
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
context "with form on or after 2025" do |
|
|
|
|
|
|
|
subject(:page) { described_class.new(page_id, page_definition, subsection, ownershipsch: 1, joint_purchase: true) } |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
let(:start_year) { 2025 } |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
it "routes to the page when resale is 2" do |
|
|
|
|
|
|
|
log = build(:sales_log, jointpur: 1, resale: 2) |
|
|
|
|
|
|
|
expect(page.routed_to?(log, nil)).to eq(true) |
|
|
|
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
it "does not route to the page when resale is not 2" do |
|
|
|
|
|
|
|
log = build(:sales_log, jointpur: 1, resale: nil) |
|
|
|
|
|
|
|
expect(page.routed_to?(log, nil)).to eq(false) |
|
|
|
|
|
|
|
end |
|
|
|
end |
|
|
|
end |
|
|
|
end |
|
|
|
end |
|
|
|
end |
|
|
|
end |
|
|
|