Browse Source

Add new organisation address page

pull/1602/head
Kat 3 years ago
parent
commit
feb6c83aac
  1. 5
      app/controllers/merge_requests_controller.rb
  2. 28
      app/views/merge_requests/new_organisation_address.html.erb
  3. 1
      config/routes.rb
  4. 80
      spec/requests/merge_requests_controller_spec.rb

5
app/controllers/merge_requests_controller.rb

@ -79,6 +79,8 @@ private
merge_date_merge_request_path(@merge_request)
when "new_organisation_name"
new_organisation_address_merge_request_path(@merge_request)
when "new_organisation_address"
new_organisation_telephone_number_merge_request_path(@merge_request)
end
end
@ -108,6 +110,9 @@ private
:telephone_number_correct,
:new_telephone_number,
:new_organisation_name,
:new_organisation_address_line1,
:new_organisation_address_line2,
:new_organisation_postcode,
)
if merge_params[:requesting_organisation_id].present? && (current_user.data_coordinator? || current_user.data_provider?)

28
app/views/merge_requests/new_organisation_address.html.erb

@ -1,5 +1,31 @@
<% content_for :before_content do %>
<% title = "New organisation address" %>
<% content_for :title, title %>
<%= govuk_back_link href: new_organisation_name_merge_request_path(id: @merge_request) %>
<%= govuk_back_link href: new_organisation_name_merge_request_path(@merge_request) %>
<% end %>
<%= form_with model: @merge_request, url: merge_request_path, method: :patch do |f| %>
<%= f.govuk_error_summary %>
<h2 class="govuk-heading-l">What is <%= @merge_request.new_organisation_name.possessive %> address?</h2>
<div class="govuk-grid-row">
<div class="govuk-grid-column-two-thirds-from-desktop">
<%= f.govuk_text_field :new_organisation_address_line1,
label: { text: "Address line 1", size: "m" },
autocomplete: "address-line1" %>
<%= f.govuk_text_field :new_organisation_address_line2,
label: { text: "Address line 2", size: "m" },
autocomplete: "address-line2" %>
<%= f.govuk_text_field :new_organisation_postcode,
label: { text: "Postcode", size: "m" },
autocomplete: "postal-code",
width: 10 %>
<div class="govuk-button-group">
<%= f.govuk_submit %>
<%= govuk_link_to("Skip for now", new_organisation_telephone_number_merge_request_path(@merge_request)) %>
</div>
</div>
<% end %>

1
config/routes.rb

@ -140,6 +140,7 @@ Rails.application.routes.draw do
get "confirm-telephone-number"
get "new-organisation-name"
get "new-organisation-address"
get "new-organisation-telephone-number"
get "merge-date"
end
end

80
spec/requests/merge_requests_controller_spec.rb

@ -553,6 +553,86 @@ RSpec.describe MergeRequestsController, type: :request do
end
end
end
describe "#new_organsation_address" do
let(:merge_request) { MergeRequest.create!(requesting_organisation: organisation, new_organisation_name: "New name", new_absorbing_organisation: true) }
context "when viewing the new organisation name page" do
before do
get "/merge-request/#{merge_request.id}/new-organisation-address", headers:
end
it "displays the correct question" do
expect(page).to have_content("What is New name’s address?")
end
it "has the correct back button" do
expect(page).to have_link("Back", href: new_organisation_name_merge_request_path(merge_request))
end
it "has a skip link" do
expect(page).to have_link("Skip for now", href: new_organisation_telephone_number_merge_request_path(merge_request))
end
end
context "when updating the new organisation address" do
let(:params) do
{ merge_request: {
new_organisation_address_line1: "first address line",
new_organisation_address_line2: "second address line",
new_organisation_postcode: "new postcode",
page: "new_organisation_address",
} }
end
let(:request) do
patch "/merge-request/#{merge_request.id}", headers:, params:
end
it "redirects to new organisation telephone path" do
request
expect(response).to redirect_to(new_organisation_telephone_number_merge_request_path(merge_request))
end
it "updates new organisation address line 1 to correct addess line" do
expect { request }.to change {
merge_request.reload.new_organisation_address_line1
}.from(nil).to("first address line")
end
it "updates new organisation address line 2 to correct addess line" do
expect { request }.to change {
merge_request.reload.new_organisation_address_line2
}.from(nil).to("second address line")
end
it "updates new organisation postcode to correct addess line" do
expect { request }.to change {
merge_request.reload.new_organisation_postcode
}.from(nil).to("new postcode")
end
end
context "when address is not provided" do
let(:params) do
{ merge_request: {
new_organisation_address_line1: nil,
new_organisation_address_line2: nil,
new_organisation_postcode: nil,
page: "new_organisation_address",
} }
end
let(:request) do
patch "/merge-request/#{merge_request.id}", headers:, params:
end
it "does not throw an error" do
request
expect(response).to redirect_to(new_organisation_telephone_number_merge_request_path(merge_request))
end
end
end
end
end

Loading…
Cancel
Save