Browse Source

Update tests

pull/2403/head
Kat 2 years ago committed by kosiakkatrina
parent
commit
f7da491d77
  1. 4
      app/controllers/organisations_controller.rb
  2. 9
      spec/features/lettings_log_spec.rb
  3. 24
      spec/requests/delete_logs_controller_spec.rb
  4. 28
      spec/requests/lettings_logs_controller_spec.rb
  5. 26
      spec/requests/organisations_controller_spec.rb

4
app/controllers/organisations_controller.rb

@ -152,7 +152,7 @@ class OrganisationsController < ApplicationController
unpaginated_filtered_logs = filter_manager.filtered_logs(organisation_logs, search_term, session_filters)
codes_only = params.require(:codes_only) == "true"
render "logs/download_csv", locals: { search_term:, count: unpaginated_filtered_logs.size, post_path: lettings_logs_email_csv_organisation_path, codes_only: }
render "logs/download_csv", locals: { search_term:, count: unpaginated_filtered_logs.size, post_path: lettings_logs_email_csv_organisation_path, codes_only:, session_filters:, filter_type: "lettings_logs" }
end
def email_lettings_csv
@ -188,7 +188,7 @@ class OrganisationsController < ApplicationController
unpaginated_filtered_logs = filter_manager.filtered_logs(organisation_logs, search_term, session_filters)
codes_only = params.require(:codes_only) == "true"
render "logs/download_csv", locals: { search_term:, count: unpaginated_filtered_logs.size, post_path: sales_logs_email_csv_organisation_path, codes_only: }
render "logs/download_csv", locals: { search_term:, count: unpaginated_filtered_logs.size, post_path: sales_logs_email_csv_organisation_path, codes_only:, session_filters:, filter_type: "lettings_logs" }
end
def email_sales_csv

9
spec/features/lettings_log_spec.rb

@ -116,10 +116,10 @@ RSpec.describe "Lettings Log Features" do
context "when downloading logs" do
let(:user) { create(:user, :support, last_sign_in_at: Time.zone.now) }
let!(:lettings_log) { create(:lettings_log, :setup_completed, owning_organisation: user.organisation, tenancycode: "1") }
context "when I am signed in" do
before do
create(:lettings_log, :setup_completed, owning_organisation: user.organisation, tenancycode: "1")
create(:lettings_log, :setup_completed, :sh, owning_organisation: user.organisation, tenancycode: "1")
allow(user).to receive(:need_two_factor_authentication?).and_return(false)
sign_in user
@ -136,7 +136,7 @@ RSpec.describe "Lettings Log Features" do
expect(page).to have_selector("#forms-filter-form-years-error")
expect(page).to have_content("There is a problem")
choose("forms-filter-form-years-2023-field", allow_label_click: true)
choose("forms-filter-form-years-#{lettings_log.form.start_date.year}-field", allow_label_click: true)
click_button("Save changes")
expect(page).to have_current_path("/lettings-logs/csv-download?codes_only=false&search=1")
@ -167,8 +167,7 @@ RSpec.describe "Lettings Log Features" do
context "when I have selected one year filter" do
before do
check("2024")
click_button("Apply filters")
visit("/lettings-logs?years[]=#{lettings_log.form.start_date.year}&search=1")
end
it "allows changing the filters and downloading the csv data" do
@ -182,10 +181,12 @@ RSpec.describe "Lettings Log Features" do
click_link("Download (CSV, codes only)")
expect(page).to have_content("You've selected 2 logs")
click_link("Change", href: "/lettings-logs/filters/needstype?search=1&codes_only=true")
expect(page).to have_current_path("/lettings-logs/filters/needstype?search=1&codes_only=true")
check("forms-filter-form-needstypes-1-field", allow_label_click: true)
click_button("Save changes")
expect(page).to have_current_path("/lettings-logs/csv-download?codes_only=true&search=1")
expect(page).to have_content("You've selected 1 logs")
click_link("Change", href: "/lettings-logs/filters/status?search=1&codes_only=true")

24
spec/requests/delete_logs_controller_spec.rb

@ -20,8 +20,7 @@ RSpec.describe "DeleteLogs", type: :request do
it "calls the filter service with the filters in the session and the search term from the query params" do
search = "Schrödinger's cat"
logs_filters = {
"years" => [""],
"status" => ["", "in_progress"],
"status" => %w[in_progress],
"assigned_to" => "all",
}
get lettings_logs_path(logs_filters) # adds the filters to the session
@ -69,8 +68,7 @@ RSpec.describe "DeleteLogs", type: :request do
it "calls the filter service with the filters in the session and the search term from the query params" do
search = "Schrödinger's cat"
logs_filters = {
"years" => [""],
"status" => ["", "in_progress"],
"status" => %w[in_progress],
"assigned_to" => "all",
}
get lettings_logs_path(logs_filters) # adds the filters to the session
@ -307,8 +305,7 @@ RSpec.describe "DeleteLogs", type: :request do
it "calls the filter service with the filters in the session and the search term from the query params" do
search = "Schrödinger's cat"
logs_filters = {
"years" => [""],
"status" => ["", "in_progress"],
"status" => %w[in_progress],
"assigned_to" => "all",
}
get sales_logs_path(logs_filters) # adds the filters to the session
@ -356,8 +353,7 @@ RSpec.describe "DeleteLogs", type: :request do
it "calls the filter service with the filters in the session and the search term from the query params" do
search = "Schrödinger's cat"
logs_filters = {
"years" => [""],
"status" => ["", "in_progress"],
"status" => %w[in_progress],
"assigned_to" => "all",
}
get sales_logs_path(logs_filters) # adds the filters to the session
@ -598,8 +594,7 @@ RSpec.describe "DeleteLogs", type: :request do
it "calls the filter service with the filters in the session and the search term from the query params" do
search = "Schrödinger's cat"
logs_filters = {
"years" => [""],
"status" => ["", "in_progress"],
"status" => %w[in_progress],
"assigned_to" => "all",
}
get lettings_logs_path(logs_filters) # adds the filters to the session
@ -647,8 +642,7 @@ RSpec.describe "DeleteLogs", type: :request do
it "calls the filter service with the filters in the session and the search term from the query params" do
search = "Schrödinger's cat"
logs_filters = {
"years" => [""],
"status" => ["", "in_progress"],
"status" => %w[in_progress],
"assigned_to" => "all",
}
get lettings_logs_path(logs_filters) # adds the filters to the session
@ -823,8 +817,7 @@ RSpec.describe "DeleteLogs", type: :request do
it "calls the filter service with the filters in the session and the search term from the query params" do
search = "Schrödinger's cat"
logs_filters = {
"years" => [""],
"status" => ["", "in_progress"],
"status" => %w[in_progress],
"assigned_to" => "all",
}
get sales_logs_path(logs_filters) # adds the filters to the session
@ -872,8 +865,7 @@ RSpec.describe "DeleteLogs", type: :request do
it "calls the filter service with the filters in the session and the search term from the query params" do
search = "Schrödinger's cat"
logs_filters = {
"years" => [""],
"status" => ["", "in_progress"],
"status" => %w[in_progress],
"assigned_to" => "all",
}
get sales_logs_path(logs_filters) # adds the filters to the session

28
spec/requests/lettings_logs_controller_spec.rb

@ -983,7 +983,7 @@ RSpec.describe LettingsLogsController, type: :request do
end
end
context "when on the second page" do
xcontext "when on the second page" do
before do
get "/lettings-logs?page=2", headers:, params: {}
end
@ -1400,15 +1400,15 @@ RSpec.describe LettingsLogsController, type: :request do
context "when requesting CSV download" do
let(:headers) { { "Accept" => "text/html" } }
let(:search_term) { "foo" }
let!(:lettings_log) { create(:lettings_log, :setup_completed, assigned_to: user, owning_organisation: user.organisation, tenancycode: search_term) }
before do
create(:lettings_log, :setup_completed, assigned_to: user, owning_organisation: user.organisation, tenancycode: search_term)
sign_in user
end
context "when there is 1 year selected in the filters" do
before do
get "/lettings-logs/csv-download?years[]=2024&search=#{search_term}&codes_only=false", headers:
get "/lettings-logs/csv-download?years[]=#{lettings_log.form.start_date.year}&search=#{search_term}&codes_only=false", headers:
end
it "returns http success" do
@ -1437,7 +1437,7 @@ RSpec.describe LettingsLogsController, type: :request do
context "when there are no years selected in the filters" do
before do
get "/lettings-logs/csv-download?years[]=2021&years[]=2022&search=#{search_term}&codes_only=false", headers:
get "/lettings-logs/csv-download?search=#{search_term}&codes_only=false", headers:
end
it "redirects to the year filter question" do
@ -1450,7 +1450,7 @@ RSpec.describe LettingsLogsController, type: :request do
context "when there are multiple years selected in the filters" do
before do
get "/lettings-logs/csv-download?search=#{search_term}&codes_only=false", headers:
get "/lettings-logs/csv-download?years[]=2021&years[]=2022&search=#{search_term}&codes_only=false", headers:
end
it "redirects to the year filter question" do
@ -1782,21 +1782,21 @@ RSpec.describe LettingsLogsController, type: :request do
let(:page) { Capybara::Node::Simple.new(response.body) }
let(:user) { FactoryBot.create(:user) }
let(:headers) { { "Accept" => "text/html" } }
let!(:lettings_log) { create(:lettings_log, :setup_completed, assigned_to: user) }
before do
create(:lettings_log, :setup_completed, assigned_to: user, tenancycode: search_term)
allow(user).to receive(:need_two_factor_authentication?).and_return(false)
sign_in user
end
it "renders a page with the correct header" do
get "/lettings-logs/csv-download?years[]=2024&codes_only=false", headers:, params: {}
get "/lettings-logs/csv-download?years[]=#{lettings_log.form.start_date.year}&codes_only=false", headers:, params: {}
header = page.find_css("h1")
expect(header.text).to include("Download CSV")
end
it "renders a form with the correct target containing a button with the correct text" do
get "/lettings-logs/csv-download?years[]=2024&codes_only=false", headers:, params: {}
get "/lettings-logs/csv-download?years[]=#{lettings_log.form.start_date.year}&codes_only=false", headers:, params: {}
form = page.find("form.button_to")
expect(form[:method]).to eq("post")
expect(form[:action]).to eq("/lettings-logs/email-csv")
@ -1805,9 +1805,11 @@ RSpec.describe LettingsLogsController, type: :request do
context "when query string contains search parameter" do
let(:search_term) { "blam" }
let!(:lettings_log) { create(:lettings_log, :setup_completed, assigned_to: user, tenancycode: search_term) }
it "contains hidden field with correct value" do
get "/lettings-logs/csv-download?years[]=2024&codes_only=false&search=#{search_term}", headers:, params: {}
get "/lettings-logs/csv-download?years[]=#{lettings_log.form.start_date.year}&codes_only=false&search=#{search_term}", headers:, params: {}
expect(page).to have_button("Send email")
hidden_field = page.find("form.button_to").find_field("search", type: "hidden")
expect(hidden_field.value).to eq(search_term)
end
@ -1818,7 +1820,7 @@ RSpec.describe LettingsLogsController, type: :request do
it "when codes_only query parameter is false, form contains hidden field with correct value" do
codes_only = false
get "/lettings-logs/csv-download?years[]=2024&codes_only=#{codes_only}", headers:, params: {}
get "/lettings-logs/csv-download?years[]=#{lettings_log.form.start_date.year}&codes_only=#{codes_only}", headers:, params: {}
hidden_field = page.find("form.button_to").find_field("codes_only", type: "hidden")
expect(hidden_field.value).to eq(codes_only.to_s)
end
@ -1833,7 +1835,7 @@ RSpec.describe LettingsLogsController, type: :request do
context "when the user is a data provider" do
it "when codes_only query parameter is false, form contains hidden field with correct value" do
codes_only = false
get "/lettings-logs/csv-download?years[]=2024&codes_only=#{codes_only}", headers:, params: {}
get "/lettings-logs/csv-download?years[]=#{lettings_log.form.start_date.year}&codes_only=#{codes_only}", headers:, params: {}
hidden_field = page.find("form.button_to").find_field("codes_only", type: "hidden")
expect(hidden_field.value).to eq(codes_only.to_s)
end
@ -1850,14 +1852,14 @@ RSpec.describe LettingsLogsController, type: :request do
it "when codes_only query parameter is false, form contains hidden field with correct value" do
codes_only = false
get "/lettings-logs/csv-download?years[]=2024&codes_only=#{codes_only}", headers:, params: {}
get "/lettings-logs/csv-download?years[]=#{lettings_log.form.start_date.year}&codes_only=#{codes_only}", headers:, params: {}
hidden_field = page.find("form.button_to").find_field("codes_only", type: "hidden")
expect(hidden_field.value).to eq(codes_only.to_s)
end
it "when codes_only query parameter is true, form contains hidden field with correct value" do
codes_only = true
get "/lettings-logs/csv-download?years[]=2024&codes_only=#{codes_only}", headers:, params: {}
get "/lettings-logs/csv-download?years[]=#{lettings_log.form.start_date.year}&codes_only=#{codes_only}", headers:, params: {}
hidden_field = page.find("form.button_to").find_field("codes_only", type: "hidden")
expect(hidden_field.value).to eq(codes_only.to_s)
end

26
spec/requests/organisations_controller_spec.rb

@ -1720,14 +1720,17 @@ RSpec.describe OrganisationsController, type: :request do
end
describe "GET #download_lettings_csv" do
let(:search_term) { "blam" }
let!(:lettings_log) { create(:lettings_log, :setup_completed, owning_organisation: organisation, tenancycode: search_term) }
it "renders a page with the correct header" do
get "/organisations/#{organisation.id}/lettings-logs/csv-download?codes_only=false", headers:, params: {}
get "/organisations/#{organisation.id}/lettings-logs/csv-download?years[]=#{lettings_log.form.start_date.year}&codes_only=false", headers:, params: {}
header = page.find_css("h1")
expect(header.text).to include("Download CSV")
end
it "renders a form with the correct target containing a button with the correct text" do
get "/organisations/#{organisation.id}/lettings-logs/csv-download?codes_only=false", headers:, params: {}
get "/organisations/#{organisation.id}/lettings-logs/csv-download?years[]=#{lettings_log.form.start_date.year}&codes_only=false", headers:, params: {}
form = page.find("form.button_to")
expect(form[:method]).to eq("post")
expect(form[:action]).to eq("/organisations/#{organisation.id}/lettings-logs/email-csv")
@ -1736,27 +1739,29 @@ RSpec.describe OrganisationsController, type: :request do
it "when codes_only query parameter is false, form contains hidden field with correct value" do
codes_only = false
get "/organisations/#{organisation.id}/lettings-logs/csv-download?codes_only=#{codes_only}", headers:, params: {}
get "/organisations/#{organisation.id}/lettings-logs/csv-download?years[]=#{lettings_log.form.start_date.year}&codes_only=#{codes_only}", headers:, params: {}
hidden_field = page.find("form.button_to").find_field("codes_only", type: "hidden")
expect(hidden_field.value).to eq(codes_only.to_s)
end
it "when codes_only query parameter is true, form contains hidden field with correct value" do
codes_only = true
get "/organisations/#{organisation.id}/lettings-logs/csv-download?codes_only=#{codes_only}", headers:, params: {}
get "/organisations/#{organisation.id}/lettings-logs/csv-download?years[]=#{lettings_log.form.start_date.year}&codes_only=#{codes_only}", headers:, params: {}
hidden_field = page.find("form.button_to").find_field("codes_only", type: "hidden")
expect(hidden_field.value).to eq(codes_only.to_s)
end
it "when query string contains search parameter, form contains hidden field with correct value" do
search_term = "blam"
get "/organisations/#{organisation.id}/lettings-logs/csv-download?codes_only=true&search=#{search_term}", headers:, params: {}
get "/organisations/#{organisation.id}/lettings-logs/csv-download?years[]=#{lettings_log.form.start_date.year}&codes_only=true&search=#{search_term}", headers:, params: {}
hidden_field = page.find("form.button_to").find_field("search", type: "hidden")
expect(hidden_field.value).to eq(search_term)
end
end
describe "GET #download_sales_csv" do
let(:search_term) { "blam" }
let!(:sales_log) { create(:sales_log, :in_progress, owning_organisation: organisation, purchid: search_term) }
it "renders a page with the correct header" do
get "/organisations/#{organisation.id}/sales-logs/csv-download?codes_only=false", headers:, params: {}
header = page.find_css("h1")
@ -1764,7 +1769,7 @@ RSpec.describe OrganisationsController, type: :request do
end
it "renders a form with the correct target containing a button with the correct text" do
get "/organisations/#{organisation.id}/sales-logs/csv-download?codes_only=false", headers:, params: {}
get "/organisations/#{organisation.id}/sales-logs/csv-download?years[]=#{sales_log.form.start_date.year}&codes_only=false", headers:, params: {}
form = page.find("form.button_to")
expect(form[:method]).to eq("post")
expect(form[:action]).to eq("/organisations/#{organisation.id}/sales-logs/email-csv")
@ -1773,21 +1778,20 @@ RSpec.describe OrganisationsController, type: :request do
it "when codes_only query parameter is false, form contains hidden field with correct value" do
codes_only = false
get "/organisations/#{organisation.id}/sales-logs/csv-download?codes_only=#{codes_only}", headers:, params: {}
get "/organisations/#{organisation.id}/sales-logs/csv-download?years[]=#{sales_log.form.start_date.year}&codes_only=#{codes_only}", headers:, params: {}
hidden_field = page.find("form.button_to").find_field("codes_only", type: "hidden")
expect(hidden_field.value).to eq(codes_only.to_s)
end
it "when codes_only query parameter is true, form contains hidden field with correct value" do
codes_only = true
get "/organisations/#{organisation.id}/sales-logs/csv-download?codes_only=#{codes_only}", headers:, params: {}
get "/organisations/#{organisation.id}/sales-logs/csv-download?years[]=#{sales_log.form.start_date.year}&codes_only=#{codes_only}", headers:, params: {}
hidden_field = page.find("form.button_to").find_field("codes_only", type: "hidden")
expect(hidden_field.value).to eq(codes_only.to_s)
end
it "when query string contains search parameter, form contains hidden field with correct value" do
search_term = "blam"
get "/organisations/#{organisation.id}/sales-logs/csv-download?codes_only=true&search=#{search_term}", headers:, params: {}
get "/organisations/#{organisation.id}/sales-logs/csv-download?years[]=#{sales_log.form.start_date.year}&codes_only=true&search=#{search_term}", headers:, params: {}
hidden_field = page.find("form.button_to").find_field("search", type: "hidden")
expect(hidden_field.value).to eq(search_term)
end

Loading…
Cancel
Save