Browse Source

added faker and refactored failing tests

pull/608/head
JG 3 years ago
parent
commit
2c28ffb3f7
  1. 1
      Gemfile
  2. 3
      Gemfile.lock
  3. 2
      spec/factories/case_log.rb
  4. 31
      spec/requests/case_logs_controller_spec.rb
  5. 4
      spec/services/exports/case_log_export_service_spec.rb

1
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

3
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

2
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 }

31
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

4
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)

Loading…
Cancel
Save