diff --git a/Gemfile b/Gemfile index 3d2e6eac6..10ce38f07 100644 --- a/Gemfile +++ b/Gemfile @@ -87,6 +87,7 @@ group :test do gem "capybara", require: false gem "capybara-lockstep" gem "factory_bot_rails" + gem "faker" gem "rspec-rails", require: false gem "selenium-webdriver", require: false gem "simplecov", require: false diff --git a/Gemfile.lock b/Gemfile.lock index df070018c..ea322cb65 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -169,6 +169,8 @@ GEM factory_bot_rails (6.2.0) factory_bot (~> 6.2.0) railties (>= 5.0.0) + faker (2.21.0) + i18n (>= 1.8.11, < 2) ffi (1.15.5) globalid (1.0.0) activesupport (>= 5.0) @@ -437,6 +439,7 @@ DEPENDENCIES dotenv-rails erb_lint factory_bot_rails + faker govuk-components govuk_design_system_formbuilder govuk_markdown diff --git a/spec/factories/case_log.rb b/spec/factories/case_log.rb index 612ef9d8a..1a1bc247e 100644 --- a/spec/factories/case_log.rb +++ b/spec/factories/case_log.rb @@ -52,7 +52,7 @@ FactoryBot.define do reservist { 0 } illness { 1 } preg_occ { 2 } - tenancy_code { "BZ757" } + tenancy_code { Faker::Alphanumeric.alphanumeric(number: 10) } startertenancy { 0 } tenancylength { 5 } tenancy { 1 } diff --git a/spec/requests/case_logs_controller_spec.rb b/spec/requests/case_logs_controller_spec.rb index de6df5b81..d726fe93d 100644 --- a/spec/requests/case_logs_controller_spec.rb +++ b/spec/requests/case_logs_controller_spec.rb @@ -309,38 +309,37 @@ RSpec.describe CaseLogsController, type: :request do end context "using a search bar" do - let(:log_1) { FactoryBot.create(:case_log, tenancy_code: "111", owning_organisation: user.organisation) } - let(:log_2) { FactoryBot.create(:case_log, tenancy_code: "222", owning_organisation: user.organisation) } - let(:log_3) { FactoryBot.create(:case_log, tenancy_code: "333", owning_organisation: user.organisation) } + let(:logs) { FactoryBot.create_list(:case_log, 3, :completed, owning_organisation: user.organisation) } it "shows case logs matching the id" do - get "/logs?search-field=#{log_1.id}", headers: headers, params: {} - expect(page).to have_content(log_1.id) - expect(page).not_to have_content(log_3.id) + get "/logs?search-field=#{logs[0].id}", headers: headers, params: {} + expect(page).to have_content(logs[0].id) + expect(page).not_to have_content(logs[1].id) + expect(page).not_to have_content(logs[2].id) end it "shows case logs matching the tenancy code" do - get "/logs?search-field=#{log_1.tenancy_code}", headers: headers, params: {} - expect(page).to have_content(log_1.id) - expect(page).not_to have_content(log_2.id) - expect(page).not_to have_content(log_3.id) + get "/logs?search-field=#{logs[0].tenancy_code}", headers: headers, params: {} + expect(page).to have_content(logs[0].id) + expect(page).not_to have_content(logs[1].id) + expect(page).not_to have_content(logs[2].id) end context "search query doesn't match any logs" do it "doesn't display any logs" do get "/logs?search-field=foobar", headers: headers, params: {} - expect(page).not_to have_content(log_1.id) - expect(page).not_to have_content(log_2.id) - expect(page).not_to have_content(log_3.id) + expect(page).not_to have_content(logs[0].id) + expect(page).not_to have_content(logs[1].id) + expect(page).not_to have_content(logs[2].id) end end context "search query is empty" do it "doesn't display any logs" do get "/logs?search-field=", headers: headers, params: {} - expect(page).not_to have_content(log_1.id) - expect(page).not_to have_content(log_2.id) - expect(page).not_to have_content(log_3.id) + expect(page).not_to have_content(logs[0].id) + expect(page).not_to have_content(logs[1].id) + expect(page).not_to have_content(logs[2].id) end end end diff --git a/spec/services/exports/case_log_export_service_spec.rb b/spec/services/exports/case_log_export_service_spec.rb index 0e5f7095e..0347ce777 100644 --- a/spec/services/exports/case_log_export_service_spec.rb +++ b/spec/services/exports/case_log_export_service_spec.rb @@ -47,7 +47,7 @@ RSpec.describe Exports::CaseLogExportService do end context "and one case log is available for export" do - let!(:case_log) { FactoryBot.create(:case_log, :completed) } + let!(:case_log) { FactoryBot.create(:case_log, :completed, tenancy_code: "BZ757") } let(:expected_data_filename) { "core_2021_2022_jan_mar_f0001_inc0001_pt001.xml" } it "generates a ZIP export file with the expected filename" do @@ -226,7 +226,7 @@ RSpec.describe Exports::CaseLogExportService do let(:csv_export_file) { File.open("spec/fixtures/exports/case_logs.csv", "r:UTF-8") } let(:expected_csv_filename) { "export_2022_05_01.csv" } - let(:case_log) { FactoryBot.create(:case_log, :completed) } + let(:case_log) { FactoryBot.create(:case_log, :completed, tenancy_code: "BZ757") } it "generates an CSV export file with the expected content" do expected_content = replace_entity_ids(case_log, csv_export_file.read)