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
# 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(:displayed_collection_resource_years).and_return([2024])
# rubocop:enable RSpec/AnyInstance
allow(CollectionResourcesService).to receive(:new).and_return(collection_resources_service)
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")
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
let(:sales_log) { FactoryBot.create(:sales_log, :shared_ownership_setup_complete, jointpur: 2, owning_organisation: user.organisation, assigned_to: user) }
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, saledate: Time.zone.local(2024, 12, 3)) }
context "when visiting the address page" do
before do
@ -247,13 +259,12 @@ RSpec.describe "Sales Log Features" do
visit("/sales-logs/#{sales_log.id}/about-staircasing-not-joint-purchase")
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/)
end
end
end
end
end
context "when signed in as a support user" do
let(:devise_notify_mailer) { DeviseNotifyMailer.new }

6
spec/features/schemes_helpers.rb

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

4
spec/helpers/guidance_helper_spec.rb

@ -3,7 +3,7 @@ require "rails_helper"
RSpec.describe GuidanceHelper do
describe "#question_link" 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
expect(question_link("mortgage", log, log.assigned_to)).to eq("")
@ -11,7 +11,7 @@ RSpec.describe GuidanceHelper do
end
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
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
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
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

2
spec/requests/bulk_upload_sales_logs_controller_spec.rb

@ -68,7 +68,7 @@ RSpec.describe BulkUploadSalesLogsController, type: :request do
end
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")
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(:user) { create(:user, :data_coordinator) }
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
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"))
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
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))
end
end
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") }
@ -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"))
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
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.")
end
end
end
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") }

5
spec/requests/form_controller_spec.rb

@ -1640,7 +1640,7 @@ RSpec.describe FormController, type: :request do
end
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(:sales_log_referrer) { "/sales-logs/#{sales_log.id}/ownership-scheme?referrer=check_answers" }
@ -1702,9 +1702,10 @@ RSpec.describe FormController, type: :request do
}
end
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|
Timecop.freeze(Time.zone.local(2022, 1, 1)) do
Timecop.freeze(Time.zone.local(2022, 7, 1)) do
Singleton.__init__(FormHandler)
example.run
end

28
spec/requests/lettings_logs_controller_spec.rb

@ -1218,8 +1218,8 @@ RSpec.describe LettingsLogsController, type: :request do
end
end
context "when a lettings log is for a renewal of supported housing" do
let(:lettings_log) { create(:lettings_log, :startdate_today, assigned_to: user, renewal: 1, needstype: 2, rent_type: 3, postcode_known: 0) }
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, startdate: Time.zone.local(2024, 10, 20)) }
it "does not show property information" do
get lettings_log_path(lettings_log)
@ -1232,6 +1232,30 @@ RSpec.describe LettingsLogsController, type: :request do
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
before do
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
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
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) }
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
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
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
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
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
render partial: "form/guidance/financial_calculations_outright_sale", locals: { log:, current_user: log.assigned_to }

Loading…
Cancel
Save