Browse Source

update tests where 2014 is assumed

pull/3010/head
Carolyn 1 month ago
parent
commit
7e6724b5bd
  1. 1
      spec/features/collection_resources_spec.rb
  2. 19
      spec/features/sales_log_spec.rb
  3. 6
      spec/features/schemes_helpers.rb
  4. 4
      spec/helpers/guidance_helper_spec.rb
  5. 4
      spec/models/bulk_upload_spec.rb
  6. 2
      spec/requests/bulk_upload_sales_logs_controller_spec.rb
  7. 2
      spec/requests/check_errors_controller_spec.rb
  8. 22
      spec/requests/collection_resources_controller_spec.rb
  9. 5
      spec/requests/form_controller_spec.rb
  10. 28
      spec/requests/lettings_logs_controller_spec.rb
  11. 2
      spec/services/csv/lettings_log_csv_service_spec.rb
  12. 6
      spec/views/form/guidance/_financial_calculations_outright_sale_spec.rb

1
spec/features/collection_resources_spec.rb

@ -7,6 +7,7 @@ RSpec.describe "Collection resources" do
before do before do
# rubocop:disable RSpec/AnyInstance # rubocop:disable RSpec/AnyInstance
allow_any_instance_of(CollectionResourcesHelper).to receive(:editable_collection_resource_years).and_return([2024, 2025]) allow_any_instance_of(CollectionResourcesHelper).to receive(:editable_collection_resource_years).and_return([2024, 2025])
allow_any_instance_of(CollectionResourcesHelper).to receive(:displayed_collection_resource_years).and_return([2024])
# rubocop:enable RSpec/AnyInstance # rubocop:enable RSpec/AnyInstance
allow(CollectionResourcesService).to receive(:new).and_return(collection_resources_service) allow(CollectionResourcesService).to receive(:new).and_return(collection_resources_service)
allow(collection_resources_service).to receive(:upload_collection_resource) allow(collection_resources_service).to receive(:upload_collection_resource)

19
spec/features/sales_log_spec.rb

@ -228,9 +228,21 @@ RSpec.describe "Sales Log Features" do
expect(page).to have_current_path("/sales-logs/csv-download?codes_only=false&search=1") expect(page).to have_current_path("/sales-logs/csv-download?codes_only=false&search=1")
end end
end end
end
end
context "when I am signed in" do
let(:user) { create(:user, last_sign_in_at: Time.zone.now) }
before do
create(:sales_log, :in_progress, owning_organisation: user.organisation, assigned_to: user)
allow(user).to receive(:need_two_factor_authentication?).and_return(false)
sign_in user
visit("/sales-logs?search=1")
end
context "when displaying the question number in the page header" do context "when viewing pages within a log" do
let(:sales_log) { FactoryBot.create(:sales_log, :shared_ownership_setup_complete, jointpur: 2, owning_organisation: user.organisation, assigned_to: user) } let(:sales_log) { FactoryBot.create(:sales_log, :shared_ownership_setup_complete, jointpur: 2, owning_organisation: user.organisation, assigned_to: user, saledate: Time.zone.local(2024, 12, 3)) }
context "when visiting the address page" do context "when visiting the address page" do
before do before do
@ -247,13 +259,12 @@ RSpec.describe "Sales Log Features" do
visit("/sales-logs/#{sales_log.id}/about-staircasing-not-joint-purchase") visit("/sales-logs/#{sales_log.id}/about-staircasing-not-joint-purchase")
end end
it "displays the question number in the page header" do it "has the expected content" do
expect(page).to have_content(/Shared ownership scheme\s*About the staircasing transaction/) expect(page).to have_content(/Shared ownership scheme\s*About the staircasing transaction/)
end end
end end
end end
end end
end
context "when signed in as a support user" do context "when signed in as a support user" do
let(:devise_notify_mailer) { DeviseNotifyMailer.new } let(:devise_notify_mailer) { DeviseNotifyMailer.new }

6
spec/features/schemes_helpers.rb

@ -1,4 +1,6 @@
module SchemesHelpers module SchemesHelpers
include CollectionTimeHelper
def fill_in_number_question(lettings_log_id, question, value, path) def fill_in_number_question(lettings_log_id, question, value, path)
visit("/lettings-logs/#{lettings_log_id}/#{path}") visit("/lettings-logs/#{lettings_log_id}/#{path}")
fill_in("lettings-log-#{question.to_s.dasherize}-field", with: value) fill_in("lettings-log-#{question.to_s.dasherize}-field", with: value)
@ -74,7 +76,7 @@ module SchemesHelpers
click_button "Save and continue" click_button "Save and continue"
choose "location-mobility-type-none-field" choose "location-mobility-type-none-field"
click_button "Save and continue" click_button "Save and continue"
fill_in "location_startdate", with: "2/5/2023" fill_in "location_startdate", with: "2/3/#{current_collection_start_year}"
click_button "Save and continue" click_button "Save and continue"
end end
@ -93,7 +95,7 @@ module SchemesHelpers
click_button "Save and continue" click_button "Save and continue"
choose "location-mobility-type-none-field" choose "location-mobility-type-none-field"
click_button "Save and continue" click_button "Save and continue"
fill_in "location_startdate", with: "2/5/2023" fill_in "location_startdate", with: "2/3/#{current_collection_start_year}"
click_button "Save and continue" click_button "Save and continue"
end end

4
spec/helpers/guidance_helper_spec.rb

@ -3,7 +3,7 @@ require "rails_helper"
RSpec.describe GuidanceHelper do RSpec.describe GuidanceHelper do
describe "#question_link" do describe "#question_link" do
context "when question page is routed to" do context "when question page is routed to" do
let(:log) { create(:sales_log, :shared_ownership_setup_complete, mortgageused: 2) } let(:log) { create(:sales_log, :shared_ownership_setup_complete, mortgageused: 2, saledate: Time.zone.local(2024, 5, 3)) }
it "returns an empty string if question is not routed to" do it "returns an empty string if question is not routed to" do
expect(question_link("mortgage", log, log.assigned_to)).to eq("") expect(question_link("mortgage", log, log.assigned_to)).to eq("")
@ -11,7 +11,7 @@ RSpec.describe GuidanceHelper do
end end
context "when question page is not routed to" do context "when question page is not routed to" do
let(:log) { create(:sales_log, :shared_ownership_setup_complete, mortgageused: 1) } let(:log) { create(:sales_log, :shared_ownership_setup_complete, mortgageused: 1, saledate: Time.zone.local(2024, 5, 3)) }
it "returns a link to the question with correct question number in brakets" do it "returns a link to the question with correct question number in brakets" do
expect(question_link("mortgage", log, log.assigned_to)).to eq("(<a class=\"govuk-link\" href=\"/sales-logs/#{log.id}/mortgage-amount-shared-ownership\">Q92</a>)") expect(question_link("mortgage", log, log.assigned_to)).to eq("(<a class=\"govuk-link\" href=\"/sales-logs/#{log.id}/mortgage-amount-shared-ownership\">Q92</a>)")

4
spec/models/bulk_upload_spec.rb

@ -29,10 +29,10 @@ RSpec.describe BulkUpload, type: :model do
end end
context "with a sales log bulk upload" do context "with a sales log bulk upload" do
let(:log) { build(:sales_log, :saledate_today, bulk_upload:) } let(:log) { build(:sales_log, saledate: Time.zone.local(2025, 4, 2), bulk_upload:) }
it "has the correct number of value checks to be set as confirmed" do it "has the correct number of value checks to be set as confirmed" do
expect(bulk_upload.fields_to_confirm(log)).to match_array %w[value_value_check monthly_charges_value_check percentage_discount_value_check income1_value_check income2_value_check combined_income_value_check retirement_value_check old_persons_shared_ownership_value_check buyer_livein_value_check student_not_child_value_check wheel_value_check mortgage_value_check savings_value_check deposit_value_check staircase_bought_value_check stairowned_value_check hodate_check shared_ownership_deposit_value_check extrabor_value_check grant_value_check discounted_sale_value_check deposit_and_mortgage_value_check multiple_partners_value_check partner_under_16_value_check] expect(bulk_upload.fields_to_confirm(log)).to match_array %w[value_value_check monthly_charges_value_check percentage_discount_value_check income1_value_check income2_value_check combined_income_value_check retirement_value_check old_persons_shared_ownership_value_check buyer_livein_value_check wheel_value_check mortgage_value_check savings_value_check deposit_value_check staircase_bought_value_check stairowned_value_check hodate_check shared_ownership_deposit_value_check extrabor_value_check grant_value_check discounted_sale_value_check deposit_and_mortgage_value_check multiple_partners_value_check partner_under_16_value_check]
end end
end end
end end

2
spec/requests/bulk_upload_sales_logs_controller_spec.rb

@ -68,7 +68,7 @@ RSpec.describe BulkUploadSalesLogsController, type: :request do
end end
it "shows guidance page with correct title" do it "shows guidance page with correct title" do
get "/sales-logs/bulk-upload-logs/guidance?form%5Byear%5D=2023", params: {} get "/sales-logs/bulk-upload-logs/guidance?form%5Byear%5D=#{previous_collection_start_year}", params: {}
expect(response.body).to include("How to upload logs in bulk") expect(response.body).to include("How to upload logs in bulk")
end end

2
spec/requests/check_errors_controller_spec.rb

@ -4,7 +4,7 @@ RSpec.describe CheckErrorsController, type: :request do
let(:page) { Capybara::Node::Simple.new(response.body) } let(:page) { Capybara::Node::Simple.new(response.body) }
let(:user) { create(:user, :data_coordinator) } let(:user) { create(:user, :data_coordinator) }
let(:lettings_log) { create(:lettings_log, :setup_completed, assigned_to: user) } let(:lettings_log) { create(:lettings_log, :setup_completed, assigned_to: user) }
let(:sales_log) { create(:sales_log, :shared_ownership_setup_complete, assigned_to: user) } let(:sales_log) { create(:sales_log, :shared_ownership_setup_complete, staircase: 2, assigned_to: user) }
describe "check errors page" do describe "check errors page" do
context "when user is not signed in" do context "when user is not signed in" do

22
spec/requests/collection_resources_controller_spec.rb

@ -118,10 +118,21 @@ RSpec.describe CollectionResourcesController, type: :request do
expect(page).to have_link("Change", href: edit_mandatory_collection_resource_path(year: 2025, log_type: "sales", resource_type: "bulk_upload_specification")) expect(page).to have_link("Change", href: edit_mandatory_collection_resource_path(year: 2025, log_type: "sales", resource_type: "bulk_upload_specification"))
end end
context "when the collection year has not started yet" do
before do
Timecop.freeze(Time.zone.local(2025, 3, 1))
get collection_resources_path
end
after do
Timecop.return
end
it "displays next year banner" do it "displays next year banner" do
expect(page).to have_content("The 2025 to 2026 collection resources are not yet available to users.") expect(page).to have_content("The 2025 to 2026 collection resources are not yet available to users.")
expect(page).to have_link("Release the 2025 to 2026 collection resources to users", href: confirm_mandatory_collection_resources_release_path(year: 2025)) expect(page).to have_link("Release the 2025 to 2026 collection resources to users", href: confirm_mandatory_collection_resources_release_path(year: 2025))
end end
end
context "when there are additional resources" do context "when there are additional resources" do
let!(:collection_resource) { create(:collection_resource, :additional, year: 2025, short_display_name: "additional resource", download_filename: "additional.pdf") } let!(:collection_resource) { create(:collection_resource, :additional, year: 2025, short_display_name: "additional resource", download_filename: "additional.pdf") }
@ -161,11 +172,22 @@ RSpec.describe CollectionResourcesController, type: :request do
expect(page).to have_link("Upload", href: edit_mandatory_collection_resource_path(year: 2025, log_type: "sales", resource_type: "bulk_upload_specification")) expect(page).to have_link("Upload", href: edit_mandatory_collection_resource_path(year: 2025, log_type: "sales", resource_type: "bulk_upload_specification"))
end end
context "when the collection year has not started yet" do
before do
Timecop.freeze(Time.zone.local(2025, 3, 1))
get collection_resources_path
end
after do
Timecop.return
end
it "displays next year banner" do it "displays next year banner" do
expect(page).to have_content("The 2025 to 2026 collection resources are not yet available to users.") expect(page).to have_content("The 2025 to 2026 collection resources are not yet available to users.")
expect(page).to have_content("Once you have uploaded all the required 2025 to 2026 collection resources, you will be able to release them to users.") expect(page).to have_content("Once you have uploaded all the required 2025 to 2026 collection resources, you will be able to release them to users.")
end end
end end
end
context "when there are additional resources" do context "when there are additional resources" do
let!(:collection_resource) { create(:collection_resource, :additional, year: 2025, short_display_name: "additional resource", download_filename: "additional.pdf") } let!(:collection_resource) { create(:collection_resource, :additional, year: 2025, short_display_name: "additional resource", download_filename: "additional.pdf") }

5
spec/requests/form_controller_spec.rb

@ -1640,7 +1640,7 @@ RSpec.describe FormController, type: :request do
end end
context "when coming from check answers page" do context "when coming from check answers page" do
let(:sales_log) { create(:sales_log, ownershipsch: 3, assigned_to: user) } let(:sales_log) { create(:sales_log, ownershipsch: 3, assigned_to: user, saledate: Time.zone.local(2024, 7, 5)) }
let(:lettings_log_referrer) { "/lettings-logs/#{lettings_log.id}/needs-type?referrer=check_answers" } let(:lettings_log_referrer) { "/lettings-logs/#{lettings_log.id}/needs-type?referrer=check_answers" }
let(:sales_log_referrer) { "/sales-logs/#{sales_log.id}/ownership-scheme?referrer=check_answers" } let(:sales_log_referrer) { "/sales-logs/#{sales_log.id}/ownership-scheme?referrer=check_answers" }
@ -1702,9 +1702,10 @@ RSpec.describe FormController, type: :request do
} }
end end
let(:referrer) { "/lettings-logs/#{completed_lettings_log.id}/net-income-value-check?referrer=check_answers" } let(:referrer) { "/lettings-logs/#{completed_lettings_log.id}/net-income-value-check?referrer=check_answers" }
let(:sales_log) { create(:sales_log, ownershipsch: 3, assigned_to: user, saledate: Time.zone.local(2022, 7, 5)) }
around do |example| around do |example|
Timecop.freeze(Time.zone.local(2022, 1, 1)) do Timecop.freeze(Time.zone.local(2022, 7, 1)) do
Singleton.__init__(FormHandler) Singleton.__init__(FormHandler)
example.run example.run
end end

28
spec/requests/lettings_logs_controller_spec.rb

@ -1218,8 +1218,8 @@ RSpec.describe LettingsLogsController, type: :request do
end end
end end
context "when a lettings log is for a renewal of supported housing" do context "when a lettings log is for a renewal of supported housing in 2024" do
let(:lettings_log) { create(:lettings_log, :startdate_today, assigned_to: user, renewal: 1, needstype: 2, rent_type: 3, postcode_known: 0) } let(:lettings_log) { create(:lettings_log, :startdate_today, assigned_to: user, renewal: 1, needstype: 2, rent_type: 3, postcode_known: 0, startdate: Time.zone.local(2024, 10, 20)) }
it "does not show property information" do it "does not show property information" do
get lettings_log_path(lettings_log) get lettings_log_path(lettings_log)
@ -1232,6 +1232,30 @@ RSpec.describe LettingsLogsController, type: :request do
end end
end end
context "when a lettings log is for a renewal of supported housing in 2025" do
let(:lettings_log) { create(:lettings_log, assigned_to: user, renewal: 1, needstype: 2, rent_type: 3, postcode_known: 0) }
before do
Timecop.freeze(2025, 10, 15)
lettings_log.startdate = Time.zone.local(2025, 10, 20)
lettings_log.save!
end
after do
Timecop.return
end
it "shows property information" do
get lettings_log_path(lettings_log)
expect(page).to have_content "Tenancy information"
expect(page).to have_content "Property information"
end
it "does not crash the app if postcode_known is not nil" do
expect { get lettings_log_path(lettings_log) }.not_to raise_error
end
end
context "with lettings logs that are not owned or managed by your organisation" do context "with lettings logs that are not owned or managed by your organisation" do
before do before do
sign_in user sign_in user

2
spec/services/csv/lettings_log_csv_service_spec.rb

@ -117,7 +117,7 @@ RSpec.describe Csv::LettingsLogCsvService do
context "when exporting with human readable labels" do context "when exporting with human readable labels" do
let(:export_type) { "labels" } let(:export_type) { "labels" }
let(:log) { create(:lettings_log, :setup_completed, hhmemb: 2, details_known_2: 0, relat2: "P", age1: 35, la: "E09000003", duplicate_set_id: 12_312) } let(:log) { create(:lettings_log, :setup_completed, hhmemb: 2, details_known_2: 0, relat2: "P", age1: 35, la: "E09000003", duplicate_set_id: 12_312, startdate: Time.zone.local(2024, 11, 1)) }
it "gives answer to radio questions as labels" do it "gives answer to radio questions as labels" do
relat2_column_index = attribute_line.index("relat2") relat2_column_index = attribute_line.index("relat2")

6
spec/views/form/guidance/_financial_calculations_outright_sale_spec.rb

@ -6,7 +6,7 @@ RSpec.describe "form/guidance/_financial_calculations_outright_sale.html.erb" do
let(:fragment) { Capybara::Node::Simple.new(rendered) } let(:fragment) { Capybara::Node::Simple.new(rendered) }
context "when mortgage used is not answered" do context "when mortgage used is not answered" do
let(:log) { create(:sales_log, :outright_sale_setup_complete, ownershipsch: 3, type: 10, mortgageused: nil, discount: 30) } let(:log) { create(:sales_log, :outright_sale_setup_complete, ownershipsch: 3, type: 10, mortgageused: nil, discount: 30, saledate: Time.zone.local(2024, 11, 1)) }
it "renders correct content" do it "renders correct content" do
render partial: "form/guidance/financial_calculations_outright_sale", locals: { log:, current_user: log.assigned_to } render partial: "form/guidance/financial_calculations_outright_sale", locals: { log:, current_user: log.assigned_to }
@ -18,7 +18,7 @@ RSpec.describe "form/guidance/_financial_calculations_outright_sale.html.erb" do
end end
context "when mortgage used is no" do context "when mortgage used is no" do
let(:log) { create(:sales_log, :outright_sale_setup_complete, ownershipsch: 3, type: 10, mortgageused: 2, discount: nil) } let(:log) { create(:sales_log, :outright_sale_setup_complete, ownershipsch: 3, type: 10, mortgageused: 2, discount: nil, saledate: Time.zone.local(2024, 11, 1)) }
it "renders correct content" do it "renders correct content" do
render partial: "form/guidance/financial_calculations_outright_sale", locals: { log:, current_user: log.assigned_to } render partial: "form/guidance/financial_calculations_outright_sale", locals: { log:, current_user: log.assigned_to }
@ -32,7 +32,7 @@ RSpec.describe "form/guidance/_financial_calculations_outright_sale.html.erb" do
end end
context "when mortgage used is yes" do context "when mortgage used is yes" do
let(:log) { create(:sales_log, :outright_sale_setup_complete, ownershipsch: 3, type: 10, mortgageused: 1, mortgage: nil, discount: 30) } let(:log) { create(:sales_log, :outright_sale_setup_complete, ownershipsch: 3, type: 10, mortgageused: 1, mortgage: nil, discount: 30, saledate: Time.zone.local(2024, 11, 1)) }
it "renders correct content" do it "renders correct content" do
render partial: "form/guidance/financial_calculations_outright_sale", locals: { log:, current_user: log.assigned_to } render partial: "form/guidance/financial_calculations_outright_sale", locals: { log:, current_user: log.assigned_to }

Loading…
Cancel
Save