Browse Source

merge the delete pages for lettings logs and sales logs, add to the tests for the lettings page to test sales specific content

pull/1657/head
Arthur Campbell 3 years ago
parent
commit
980550f45b
  1. 24
      app/controllers/delete_logs_controller.rb
  2. 48
      app/views/logs/delete_lettings_logs.html.erb
  3. 18
      app/views/logs/delete_logs.html.erb
  4. 50
      spec/views/logs/delete_logs_spec.rb

24
app/controllers/delete_logs_controller.rb

@ -7,13 +7,13 @@ class DeleteLogsController < ApplicationController
def delete_lettings_logs
@delete_logs_form = delete_logs_form(log_type: :lettings, paths: lettings_logs_paths)
render "logs/delete_lettings_logs"
render "logs/delete_logs"
end
def delete_lettings_logs_with_selected_ids
selected_ids = params.require(:selected_ids).split.map(&:to_i)
@delete_logs_form = delete_logs_form(selected_ids:, log_type: :lettings, paths: lettings_logs_paths)
render "logs/delete_lettings_logs"
render "logs/delete_logs"
end
def delete_lettings_logs_confirmation
@ -28,7 +28,7 @@ class DeleteLogsController < ApplicationController
if @delete_logs_form.valid?
render "logs/delete_logs_confirmation"
else
render "logs/delete_lettings_logs"
render "logs/delete_logs"
end
end
@ -44,13 +44,13 @@ class DeleteLogsController < ApplicationController
def delete_sales_logs
@delete_logs_form = delete_logs_form(log_type: :sales, paths: sales_logs_paths)
render "logs/delete_sales_logs"
render "logs/delete_logs"
end
def delete_sales_logs_with_selected_ids
selected_ids = params.require(:selected_ids).split.map(&:to_i)
@delete_logs_form = delete_logs_form(selected_ids:, log_type: :sales, paths: sales_logs_paths)
render "logs/delete_sales_logs"
render "logs/delete_logs"
end
def delete_sales_logs_confirmation
@ -65,7 +65,7 @@ class DeleteLogsController < ApplicationController
if @delete_logs_form.valid?
render "logs/delete_logs_confirmation"
else
render "logs/delete_sales_logs"
render "logs/delete_logs"
end
end
@ -81,13 +81,13 @@ class DeleteLogsController < ApplicationController
def delete_lettings_logs_for_organisation
@delete_logs_form = delete_logs_form(log_type: :lettings, paths: lettings_logs_for_organisation_paths)
render "logs/delete_lettings_logs"
render "logs/delete_logs"
end
def delete_lettings_logs_for_organisation_with_selected_ids
selected_ids = params.require(:selected_ids).split.map(&:to_i)
@delete_logs_form = delete_logs_form(selected_ids:, log_type: :lettings, paths: lettings_logs_for_organisation_paths)
render "logs/delete_lettings_logs"
render "logs/delete_logs"
end
def delete_lettings_logs_for_organisation_confirmation
@ -102,7 +102,7 @@ class DeleteLogsController < ApplicationController
if @delete_logs_form.valid?
render "logs/delete_logs_confirmation"
else
render "logs/delete_lettings_logs"
render "logs/delete_logs"
end
end
@ -118,13 +118,13 @@ class DeleteLogsController < ApplicationController
def delete_sales_logs_for_organisation
@delete_logs_form = delete_logs_form(log_type: :sales, paths: sales_logs_for_organisation_paths)
render "logs/delete_sales_logs"
render "logs/delete_logs"
end
def delete_sales_logs_for_organisation_with_selected_ids
selected_ids = params.require(:selected_ids).split.map(&:to_i)
@delete_logs_form = delete_logs_form(selected_ids:, log_type: :sales, paths: sales_logs_for_organisation_paths)
render "logs/delete_sales_logs"
render "logs/delete_logs"
end
def delete_sales_logs_for_organisation_confirmation
@ -139,7 +139,7 @@ class DeleteLogsController < ApplicationController
if @delete_logs_form.valid?
render "logs/delete_logs_confirmation"
else
render "logs/delete_sales_logs"
render "logs/delete_logs"
end
end

48
app/views/logs/delete_lettings_logs.html.erb

@ -1,48 +0,0 @@
<% title = "Delete logs" %>
<% content_for :title, title %>
<% content_for :before_content do %>
<%= govuk_back_link(href: :back) %>
<% end %>
<h1 class="govuk-heading-l">
<span class="govuk-caption-l"><%= title %></span>
Review the logs you want to delete
</h1>
<p>You've selected <%= @delete_logs_form.log_count %> <%= "log".pluralize(@delete_logs_form.log_count) %> to delete</p>
<%= form_with model: @delete_logs_form, url: @delete_logs_form.delete_confirmation_path do |f| %>
<%= f.hidden_field :search_term, value: @delete_logs_form.search_term %>
<%= f.govuk_error_summary %>
<%= govuk_table do |table| %>
<% table.head do |head| %>
<% head.row do |row| %>
<% row.cell(header: true, text: "Log ID") %>
<% row.cell(header: true, text: "Tenancy code") %>
<% row.cell(header: true, text: "Property reference") %>
<% row.cell(header: true, text: "Status") %>
<% row.cell(header: true, text: "Delete?") %>
<% end %>
<% end %>
<% table.body do |body| %>
<% f.govuk_check_boxes_fieldset :selected_ids, small: true do %>
<% @delete_logs_form.logs.each do |log| %>
<% body.row do |row| %>
<% row.cell(text: log.id) %>
<% row.cell(text: log.tenancycode) %>
<% row.cell(text: log.propcode) %>
<% row.cell(text: status_tag(log.status)) %>
<% row.cell do %>
<% f.govuk_check_box :selected_ids, log.id,
label: { text: log.id, hidden: true },
size: "s",
checked: @delete_logs_form.selected_ids.include?(log.id) %>
<% end %>
<% end %>
<% end %>
<% end %>
<% end %>
<% end %>
<%= f.govuk_submit "Continue" do %>
<%= govuk_button_link_to "Cancel", @delete_logs_form.back_to_logs_path, secondary: true %>
<% end %>
<% end %>

18
app/views/logs/delete_sales_logs.html.erb → app/views/logs/delete_logs.html.erb

@ -17,8 +17,13 @@
<% table.head do |head| %>
<% head.row do |row| %>
<% row.cell(header: true, text: "Log ID") %>
<% row.cell(header: true, text: "Owning Organisation") %>
<% row.cell(header: true, text: "Created") %>
<% if @delete_logs_form.log_type == :lettings %>
<% row.cell(header: true, text: "Tenancy code") %>
<% row.cell(header: true, text: "Property reference") %>
<% elsif @delete_logs_form.log_type == :sales %>
<% row.cell(header: true, text: "Purchaser code") %>
<% row.cell(header: true, text: "Sale completion date") %>
<% end %>
<% row.cell(header: true, text: "Status") %>
<% row.cell(header: true, text: "Delete?") %>
<% end %>
@ -28,8 +33,13 @@
<% @delete_logs_form.logs.each do |log| %>
<% body.row do |row| %>
<% row.cell(text: log.id) %>
<% row.cell(text: log.owning_organisation&.name) %>
<% row.cell(text: log.created_at&.to_formatted_s(:govuk_date)) %>
<% if @delete_logs_form.log_type == :lettings %>
<% row.cell(text: log.tenancycode) %>
<% row.cell(text: log.propcode) %>
<% elsif @delete_logs_form.log_type == :sales %>
<% row.cell(text: log.purchid) %>
<% row.cell(text: log.saledate&.to_formatted_s(:govuk_date)) %>
<% end %>
<% row.cell(text: status_tag(log.status)) %>
<% row.cell do %>
<% f.govuk_check_box :selected_ids, log.id,

50
spec/views/logs/delete_lettings_logs_spec.rb → spec/views/logs/delete_logs_spec.rb

@ -1,6 +1,6 @@
require "rails_helper"
RSpec.describe "logs/delete_lettings_logs.html.erb" do
RSpec.describe "logs/delete_logs.html.erb" do
let(:user) { create(:user, :support, name: "Dirk Gently") }
let(:lettings_log_1) { create(:lettings_log, tenancycode: "Holistic", propcode: "Detective Agency", created_by: user) }
let(:lettings_logs) { [lettings_log_1] }
@ -53,18 +53,46 @@ RSpec.describe "logs/delete_lettings_logs.html.erb" do
end
end
it "shows the correct headers in the table" do
render
fragment = Capybara::Node::Simple.new(rendered)
headers = fragment.find_all("table thead tr th").map(&:text)
expect(headers).to eq ["Log ID", "Tenancy code", "Property reference", "Status", "Delete?"]
context "when the table contains lettings logs" do
it "shows the correct headers in the table" do
render
fragment = Capybara::Node::Simple.new(rendered)
headers = fragment.find_all("table thead tr th").map(&:text)
expect(headers).to eq ["Log ID", "Tenancy code", "Property reference", "Status", "Delete?"]
end
it "shows the correct information in each row" do
render
fragment = Capybara::Node::Simple.new(rendered)
row_data = fragment.find_all("table tbody tr td").map(&:text)[0...-1]
expect(row_data).to eq [lettings_log_1.id.to_s, lettings_log_1.tenancycode, lettings_log_1.propcode, lettings_log_1.status.humanize.capitalize]
end
end
it "shows the correct information in each row" do
render
fragment = Capybara::Node::Simple.new(rendered)
row_data = fragment.find_all("table tbody tr td").map(&:text)[0...-1]
expect(row_data).to eq [lettings_log_1.id.to_s, lettings_log_1.tenancycode, lettings_log_1.propcode, lettings_log_1.status.humanize.capitalize]
context "when the table contains sales logs" do
let(:sales_log) { create(:sales_log, purchid: "Interconnectedness", saledate: Time.zone.today, created_by: user) }
let(:sales_logs) { [sales_log] }
let(:delete_logs_form_sales) { Forms::DeleteLogsForm.new(log_type: :sales, current_user: user, **paths) }
before do
sign_in user
allow(FilterService).to receive(:filter_logs).and_return sales_logs
assign(:delete_logs_form, delete_logs_form_sales)
end
it "shows the correct headers in the table" do
render
fragment = Capybara::Node::Simple.new(rendered)
headers = fragment.find_all("table thead tr th").map(&:text)
expect(headers).to eq ["Log ID", "Purchaser code", "Sale completion date", "Status", "Delete?"]
end
it "shows the correct information in each row" do
render
fragment = Capybara::Node::Simple.new(rendered)
row_data = fragment.find_all("table tbody tr td").map(&:text)[0...-1]
expect(row_data).to eq [sales_log.id.to_s, sales_log.purchid, sales_log.saledate.to_formatted_s(:govuk_date), sales_log.status.humanize.capitalize]
end
end
it "shows a checkbox with the correct hidden label in the final cell of each row" do
Loading…
Cancel
Save