From 6edaabb1c9d41e9c8123a8fb0c604f03328f1f39 Mon Sep 17 00:00:00 2001 From: Jamie Date: Thu, 3 Oct 2024 15:54:58 +0100 Subject: [PATCH] Refactor placement routes to include provider id --- .../placement/summary_component.html.erb | 2 +- .../placements/organisations_controller.rb | 2 +- .../{ => providers}/placements_controller.rb | 12 ++- .../placements/placements/filter_form.rb | 11 ++- app/mailers/user_mailer.rb | 4 +- .../providers/_primary_navigation.html.erb | 2 +- .../partner_schools/_delete.html.erb | 2 +- .../partner_schools/placements/show.html.erb | 2 +- .../placements/_filter.html.erb | 2 +- .../{ => providers}/placements/index.html.erb | 4 +- .../{ => providers}/placements/show.html.erb | 2 +- .../schools/placements/preview.html.erb | 2 +- .../_preview_placement_step.html.erb | 2 +- .../placements/_placement_dates.html.erb | 0 .../placements/_placement_details.html.erb | 4 +- .../placements/_school_details.html.erb | 0 config/locales/en/placements/placements.yml | 58 ------------ .../en/placements/providers/placements.yml | 39 ++++++++ .../en/shared/placements/placement_dates.yml | 6 ++ .../shared/placements/placement_details.yml | 10 +++ .../en/shared/placements/school_details.yml | 14 +++ config/routes/placements.rb | 4 +- .../placements/placements/filter_form_spec.rb | 88 +++++++++++-------- spec/mailers/user_mailer_spec.rb | 8 +- .../placements/providers/placements_spec.rb | 17 +--- .../organisations/view_organisations_spec.rb | 8 +- ...ches_filter_options_for_placements_spec.rb | 2 +- .../searching_for_a_placement_spec.rb | 4 +- .../placements/view_a_placement_spec.rb | 2 +- .../placements/view_placements_list_spec.rb | 4 +- .../sign_in_as_a_placements_user_spec.rb | 4 +- 31 files changed, 169 insertions(+), 152 deletions(-) rename app/controllers/placements/{ => providers}/placements_controller.rb (84%) rename app/views/placements/{ => providers}/placements/_filter.html.erb (99%) rename app/views/placements/{ => providers}/placements/index.html.erb (90%) rename app/views/placements/{ => providers}/placements/show.html.erb (78%) rename app/views/{placements => shared}/placements/_placement_dates.html.erb (100%) rename app/views/{placements => shared}/placements/_placement_details.html.erb (86%) rename app/views/{placements => shared}/placements/_school_details.html.erb (100%) delete mode 100644 config/locales/en/placements/placements.yml create mode 100644 config/locales/en/placements/providers/placements.yml create mode 100644 config/locales/en/shared/placements/placement_dates.yml create mode 100644 config/locales/en/shared/placements/placement_details.yml create mode 100644 config/locales/en/shared/placements/school_details.yml diff --git a/app/components/placement/summary_component.html.erb b/app/components/placement/summary_component.html.erb index a7eae5988..2832fcbdc 100644 --- a/app/components/placement/summary_component.html.erb +++ b/app/components/placement/summary_component.html.erb @@ -1,6 +1,6 @@
  • - <%= govuk_link_to(placements_placement_path(placement), no_visited_state: true) do %> + <%= govuk_link_to(placements_provider_placement_path(provider, placement), no_visited_state: true) do %> <%= school.name %>
    <%= placement.title %> diff --git a/app/controllers/placements/organisations_controller.rb b/app/controllers/placements/organisations_controller.rb index 8afdbc740..ea4127a3e 100644 --- a/app/controllers/placements/organisations_controller.rb +++ b/app/controllers/placements/organisations_controller.rb @@ -36,7 +36,7 @@ def landing_page_path(organisation) if organisation.is_a?(School) placements_school_placements_path(organisation) else # Provider - placements_placements_path + placements_provider_placements_path(organisation) end end end diff --git a/app/controllers/placements/placements_controller.rb b/app/controllers/placements/providers/placements_controller.rb similarity index 84% rename from app/controllers/placements/placements_controller.rb rename to app/controllers/placements/providers/placements_controller.rb index 4cef32e77..a38132346 100644 --- a/app/controllers/placements/placements_controller.rb +++ b/app/controllers/placements/providers/placements_controller.rb @@ -1,5 +1,5 @@ -class Placements::PlacementsController < Placements::ApplicationController - before_action :set_current_organisation +class Placements::Providers::PlacementsController < Placements::ApplicationController + before_action :set_current_provider helper_method :filter_form, :location_coordinates def index @@ -30,14 +30,12 @@ def schools_scope end end - def set_current_organisation - return redirect_to organisations_path if current_user.current_organisation.blank? - - @provider = current_user.current_organisation + def set_current_provider + @provider = current_user.providers.find(params[:provider_id]) end def filter_form - @filter_form ||= Placements::Placements::FilterForm.new(filter_params) + @filter_form ||= Placements::Placements::FilterForm.new(@provider, filter_params) end def search_location diff --git a/app/forms/placements/placements/filter_form.rb b/app/forms/placements/placements/filter_form.rb index 464c2ead4..d96220741 100644 --- a/app/forms/placements/placements/filter_form.rb +++ b/app/forms/placements/placements/filter_form.rb @@ -9,7 +9,8 @@ class Placements::Placements::FilterForm < ApplicationForm attribute :academic_year_id, default: Placements::AcademicYear.current.id attribute :only_partner_schools, :boolean, default: false - def initialize(params = {}) + def initialize(provider, params = {}) + @provider = provider params.each_value { |v| v.compact_blank! if v.is_a?(Array) } super(params) @@ -20,7 +21,10 @@ def filters_selected? end def clear_filters_path(search_location: nil) - placements_placements_path(search_location:, filters: { placements_to_show:, academic_year_id: }) + placements_provider_placements_path( + @provider, + search_location:, filters: { placements_to_show:, academic_year_id: }, + ) end def index_path_without_filter(filter:, value: nil, search_location: nil) @@ -30,7 +34,8 @@ def index_path_without_filter(filter:, value: nil, search_location: nil) compacted_attributes.merge(filter => compacted_attributes[filter].reject { |filter_value| filter_value == value }) end - placements_placements_path( + placements_provider_placements_path( + @provider, params: { filters: without_filter, search_location: }, ) end diff --git a/app/mailers/user_mailer.rb b/app/mailers/user_mailer.rb index 91528d483..baba6b1de 100644 --- a/app/mailers/user_mailer.rb +++ b/app/mailers/user_mailer.rb @@ -106,7 +106,7 @@ def partnership_destroyed_notification(user, source_organisation, partner_organi end def placement_provider_assigned_notification(user, provider, placement) - placement_link = placements_placement_url(placement) + placement_link = placements_provider_placement_url(provider, placement) school = placement.school notify_email( @@ -124,7 +124,7 @@ def placement_provider_assigned_notification(user, provider, placement) end def placement_provider_removed_notification(user, provider, placement) - placement_link = placements_placement_url(placement) + placement_link = placements_provider_placement_url(provider, placement) school = placement.school notify_email( diff --git a/app/views/placements/providers/_primary_navigation.html.erb b/app/views/placements/providers/_primary_navigation.html.erb index 4a35b8a75..9aad7e394 100644 --- a/app/views/placements/providers/_primary_navigation.html.erb +++ b/app/views/placements/providers/_primary_navigation.html.erb @@ -10,7 +10,7 @@ <%= content_for(:primary_navigation_content) do %> <%= render PrimaryNavigationComponent.new do |component| %> - <% component.with_navigation_item t(".placements"), placements_placements_path, current: current_navigation == :placements %> + <% component.with_navigation_item t(".placements"), placements_provider_placements_path(provider), current: current_navigation == :placements %> <% component.with_navigation_item t(".partner_schools"), placements_provider_partner_schools_path(provider), current: current_navigation == :partner_schools %> <% component.with_navigation_item t(".users"), placements_provider_users_path(provider), current: current_navigation == :users %> <% component.with_navigation_item t(".organisation_details"), diff --git a/app/views/placements/providers/partner_schools/_delete.html.erb b/app/views/placements/providers/partner_schools/_delete.html.erb index 9c9451373..ed5589ec2 100644 --- a/app/views/placements/providers/partner_schools/_delete.html.erb +++ b/app/views/placements/providers/partner_schools/_delete.html.erb @@ -12,7 +12,7 @@
      <% @partner_school.partner_provider_placements(provider).each do |placement| %>
    • - <%= govuk_link_to(placement.title, placements_placement_path(placement), target: "_blank", new_tab: true, no_visited_state: true) %> + <%= govuk_link_to(placement.title, placements_provider_placement_path(provider, placement), target: "_blank", new_tab: true, no_visited_state: true) %>
    • <% end %>
    diff --git a/app/views/placements/providers/partner_schools/placements/show.html.erb b/app/views/placements/providers/partner_schools/placements/show.html.erb index 3025c9b05..52a03f2f3 100644 --- a/app/views/placements/providers/partner_schools/placements/show.html.erb +++ b/app/views/placements/providers/partner_schools/placements/show.html.erb @@ -7,5 +7,5 @@ <% end %>
    - <%= render "placements/placements/placement_details", school: @placement.school, placement: @placement %> + <%= render "shared/placements/placement_details", school: @placement.school, placement: @placement %>
    diff --git a/app/views/placements/placements/_filter.html.erb b/app/views/placements/providers/placements/_filter.html.erb similarity index 99% rename from app/views/placements/placements/_filter.html.erb rename to app/views/placements/providers/placements/_filter.html.erb index bec5363bc..ce89fa61d 100644 --- a/app/views/placements/placements/_filter.html.erb +++ b/app/views/placements/providers/placements/_filter.html.erb @@ -129,7 +129,7 @@ <%= form_with( model: filter_form, scope: :filters, - url: placements_placements_path, + url: placements_provider_placements_path(@provider), method: "get", ) do |form| %> <%= form.govuk_submit t("apply_filters") %> diff --git a/app/views/placements/placements/index.html.erb b/app/views/placements/providers/placements/index.html.erb similarity index 90% rename from app/views/placements/placements/index.html.erb rename to app/views/placements/providers/placements/index.html.erb index e0162217f..b76f16f79 100644 --- a/app/views/placements/placements/index.html.erb +++ b/app/views/placements/providers/placements/index.html.erb @@ -21,11 +21,11 @@

    <%= t(".enter_a_location") %>

    <%= render partial: "shared/search_form", locals: { - url: placements_placements_path, + url: placements_provider_placements_path(@provider), label: { hidden: true }, caption: { text: t(".location_search_example") }, name: :search_location, - clear_search_url: placements_placements_path(filters: filter_form.attributes), + clear_search_url: placements_provider_placements_path(@provider, filters: filter_form.attributes), filters: filter_form.attributes, value: @search_location, } %> diff --git a/app/views/placements/placements/show.html.erb b/app/views/placements/providers/placements/show.html.erb similarity index 78% rename from app/views/placements/placements/show.html.erb rename to app/views/placements/providers/placements/show.html.erb index 71ef70cea..d22be7ee8 100644 --- a/app/views/placements/placements/show.html.erb +++ b/app/views/placements/providers/placements/show.html.erb @@ -6,5 +6,5 @@ <% end %>
    - <%= render "placement_details", school: @school, placement: @placement %> + <%= render "shared/placements/placement_details", school: @school, placement: @placement %>
    diff --git a/app/views/placements/schools/placements/preview.html.erb b/app/views/placements/schools/placements/preview.html.erb index ed0f4565b..6476afcaf 100644 --- a/app/views/placements/schools/placements/preview.html.erb +++ b/app/views/placements/schools/placements/preview.html.erb @@ -10,5 +10,5 @@ <%= render(GovukComponent::NotificationBannerComponent.new(title_text: t(".important"))) do |nb| nb.with_heading(text: t(".this_is_a_preview")) end %> - <%= render "placements/placements/placement_details", school: @placement.school, placement: @placement %> + <%= render "shared/placements/placement_details", school: @placement.school, placement: @placement %>
    diff --git a/app/views/placements/wizards/add_placement_wizard/_preview_placement_step.html.erb b/app/views/placements/wizards/add_placement_wizard/_preview_placement_step.html.erb index 542e03063..597a85e26 100644 --- a/app/views/placements/wizards/add_placement_wizard/_preview_placement_step.html.erb +++ b/app/views/placements/wizards/add_placement_wizard/_preview_placement_step.html.erb @@ -8,7 +8,7 @@ <%= form_for(preview_placement_step, url: current_step_path, method: :put) do |f| %> <%= f.govuk_error_summary %> - <%= render "placements/placements/placement_details", school: @wizard.school.decorate, placement: preview_placement_step.placement.decorate %> + <%= render "shared/placements/placement_details", school: @wizard.school.decorate, placement: preview_placement_step.placement.decorate %>
    <%= f.govuk_submit t(".publish_placement") %> diff --git a/app/views/placements/placements/_placement_dates.html.erb b/app/views/shared/placements/_placement_dates.html.erb similarity index 100% rename from app/views/placements/placements/_placement_dates.html.erb rename to app/views/shared/placements/_placement_dates.html.erb diff --git a/app/views/placements/placements/_placement_details.html.erb b/app/views/shared/placements/_placement_details.html.erb similarity index 86% rename from app/views/placements/placements/_placement_details.html.erb rename to app/views/shared/placements/_placement_details.html.erb index 3c1d03c99..4ecb1cac1 100644 --- a/app/views/placements/placements/_placement_details.html.erb +++ b/app/views/shared/placements/_placement_details.html.erb @@ -10,7 +10,7 @@

    <%= t(".itt_placement_dates") %>

    - <%= render "placements/placements/placement_dates", school:, placement: %> + <%= render "shared/placements/placement_dates", school:, placement: %>

    <%= t(".itt_placement_contact") %> @@ -28,6 +28,6 @@

    <%= t(".additional_details") %>

    - <%= render "placements/placements/school_details", school:, placement: %> + <%= render "shared/placements/school_details", school:, placement: %>
    diff --git a/app/views/placements/placements/_school_details.html.erb b/app/views/shared/placements/_school_details.html.erb similarity index 100% rename from app/views/placements/placements/_school_details.html.erb rename to app/views/shared/placements/_school_details.html.erb diff --git a/config/locales/en/placements/placements.yml b/config/locales/en/placements/placements.yml deleted file mode 100644 index 2a04d55bd..000000000 --- a/config/locales/en/placements/placements.yml +++ /dev/null @@ -1,58 +0,0 @@ -en: - placements: - academic_year: - current_academic_year: This academic year (%{academic_year}) - next_academic_year: Next academic year (%{academic_year}) - previous_academic_year: Previous academic year (%{academic_year}) - placements: - index: - placements_found: - zero: No placements found - one: 1 placement found - other: "%{count} placements found" - placements: Placements - no_results: There are no placements that match your selection. Try searching again, or removing one or more filters. - enter_a_location: Enter a location - location_search_example: For example, Sunderland or SR2 - filter: - partner_schools: Partner schools - terms: Expected date - only_show_partner_schools: Only show placements offered by my partner schools - school: School - subject: Subject - school_phase: School phase - establishment_group: Establishment group - gender: Gender - religious_character: Religious character - ofsted_rating: Ofsted rating - placements_to_show_title: Placements to show - placements_to_show: - available_placements: Available placements - assigned_to_me: Assigned to me - all_placements: All placements - year_group: Primary year group - academic_year: - label: Academic year - placement_details: - contact_details: Contact details - itt_placement_contact: Placement contact - itt_placement_dates: Placement dates - location: Location - additional_details: Additional details - placement: "Placement - %{school_name}" - show: - page_title: "%{subject_name} - Placements - %{school_name}" - placement: "Placement - %{school_name}" - placement_dates: - academic_year: Academic year - terms: Expected date - school_details: - establishment_group: Establishment group - school_phase: School phase - gender: Gender - age_range: Age range - religious_character: Religious character - urban_or_rural: Urban or rural - admissions_policy: Admissions policy - percentage_free_school_meals: Percentage free school meals - ofsted_rating: Ofsted rating diff --git a/config/locales/en/placements/providers/placements.yml b/config/locales/en/placements/providers/placements.yml new file mode 100644 index 000000000..4d8cf92ec --- /dev/null +++ b/config/locales/en/placements/providers/placements.yml @@ -0,0 +1,39 @@ +en: + placements: + academic_year: + current_academic_year: This academic year (%{academic_year}) + next_academic_year: Next academic year (%{academic_year}) + previous_academic_year: Previous academic year (%{academic_year}) + providers: + placements: + index: + placements_found: + zero: No placements found + one: 1 placement found + other: "%{count} placements found" + placements: Placements + no_results: There are no placements that match your selection. Try searching again, or removing one or more filters. + enter_a_location: Enter a location + location_search_example: For example, Sunderland or SR2 + filter: + partner_schools: Partner schools + terms: Expected date + only_show_partner_schools: Only show placements offered by my partner schools + school: School + subject: Subject + school_phase: School phase + establishment_group: Establishment group + gender: Gender + religious_character: Religious character + ofsted_rating: Ofsted rating + placements_to_show_title: Placements to show + placements_to_show: + available_placements: Available placements + assigned_to_me: Assigned to me + all_placements: All placements + year_group: Primary year group + academic_year: + label: Academic year + show: + page_title: "%{subject_name} - Placements - %{school_name}" + placement: "Placement - %{school_name}" diff --git a/config/locales/en/shared/placements/placement_dates.yml b/config/locales/en/shared/placements/placement_dates.yml new file mode 100644 index 000000000..a2e55c901 --- /dev/null +++ b/config/locales/en/shared/placements/placement_dates.yml @@ -0,0 +1,6 @@ +en: + shared: + placements: + placement_dates: + academic_year: Academic year + terms: Expected date \ No newline at end of file diff --git a/config/locales/en/shared/placements/placement_details.yml b/config/locales/en/shared/placements/placement_details.yml new file mode 100644 index 000000000..4efb66991 --- /dev/null +++ b/config/locales/en/shared/placements/placement_details.yml @@ -0,0 +1,10 @@ +en: + shared: + placements: + placement_details: + contact_details: Contact details + itt_placement_contact: Placement contact + itt_placement_dates: Placement dates + location: Location + additional_details: Additional details + placement: "Placement - %{school_name}" \ No newline at end of file diff --git a/config/locales/en/shared/placements/school_details.yml b/config/locales/en/shared/placements/school_details.yml new file mode 100644 index 000000000..944c4fe95 --- /dev/null +++ b/config/locales/en/shared/placements/school_details.yml @@ -0,0 +1,14 @@ +en: + shared: + placements: + school_details: + establishment_group: Establishment group + school_phase: School phase + gender: Gender + age_range: Age range + religious_character: Religious character + urban_or_rural: Urban or rural + admissions_policy: Admissions policy + percentage_free_school_meals: Percentage free school meals + ofsted_rating: Ofsted rating + diff --git a/config/routes/placements.rb b/config/routes/placements.rb index 6e6d2dacb..04870786e 100644 --- a/config/routes/placements.rb +++ b/config/routes/placements.rb @@ -204,8 +204,8 @@ resources :placements, only: %i[index show] end end + + resources :placements, only: %i[index show] end end - - resources :placements, only: %i[index show] end diff --git a/spec/forms/placements/placements/filter_form_spec.rb b/spec/forms/placements/placements/filter_form_spec.rb index f90d12541..d581e5b9c 100644 --- a/spec/forms/placements/placements/filter_form_spec.rb +++ b/spec/forms/placements/placements/filter_form_spec.rb @@ -7,7 +7,7 @@ let(:current_academic_year) { Placements::AcademicYear.current } describe "#filters_selected?" do - subject(:filter_form) { described_class.new(params).filters_selected? } + subject(:filter_form) { described_class.new(provider, params).filters_selected? } context "when given school id params" do let(:params) { { school_ids: %w[school_id] } } @@ -59,20 +59,23 @@ end describe "#clear_filters_path" do - subject(:filter_form) { described_class.new } + subject(:filter_form) { described_class.new(provider) } it "returns the placements index page path" do expect(filter_form.clear_filters_path).to eq( - placements_placements_path(filters: { - placements_to_show: "available_placements", - academic_year_id: current_academic_year.id, - }), + placements_provider_placements_path( + provider, + filters: { + placements_to_show: "available_placements", + academic_year_id: current_academic_year.id, + }, + ), ) end end describe "index_path_without_filter" do - subject(:filter_form) { described_class.new(params) } + subject(:filter_form) { described_class.new(provider, params) } context "when removing school id params" do let(:params) do @@ -86,11 +89,14 @@ value: "school_id_1", ), ).to eq( - placements_placements_path(filters: { - placements_to_show: "available_placements", - academic_year_id: current_academic_year.id, - school_ids: %w[school_id_2], - }), + placements_provider_placements_path( + provider, + filters: { + placements_to_show: "available_placements", + academic_year_id: current_academic_year.id, + school_ids: %w[school_id_2], + }, + ), ) end end @@ -107,10 +113,13 @@ value: false, ), ).to eq( - placements_placements_path(filters: { - placements_to_show: "available_placements", - academic_year_id: current_academic_year.id, - }), + placements_provider_placements_path( + provider, + filters: { + placements_to_show: "available_placements", + academic_year_id: current_academic_year.id, + }, + ), ) end end @@ -127,11 +136,14 @@ value: "subject_id_1", ), ).to eq( - placements_placements_path(filters: { - placements_to_show: "available_placements", - academic_year_id: current_academic_year.id, - subject_ids: %w[subject_id_2], - }), + placements_provider_placements_path( + provider, + filters: { + placements_to_show: "available_placements", + academic_year_id: current_academic_year.id, + subject_ids: %w[subject_id_2], + }, + ), ) end end @@ -148,11 +160,14 @@ value: "term_id_1", ), ).to eq( - placements_placements_path(filters: { - placements_to_show: "available_placements", - academic_year_id: current_academic_year.id, - term_ids: %w[term_id_2], - }), + placements_provider_placements_path( + provider, + filters: { + placements_to_show: "available_placements", + academic_year_id: current_academic_year.id, + term_ids: %w[term_id_2], + }, + ), ) end end @@ -169,11 +184,14 @@ value: "year_group_1", ), ).to eq( - placements_placements_path(filters: { - placements_to_show: "available_placements", - academic_year_id: current_academic_year.id, - year_groups: %w[year_group_2], - }), + placements_provider_placements_path( + provider, + filters: { + placements_to_show: "available_placements", + academic_year_id: current_academic_year.id, + year_groups: %w[year_group_2], + }, + ), ) end end @@ -181,7 +199,7 @@ describe "#query_params" do it "returns the expected result" do - expect(described_class.new.query_params).to eq( + expect(described_class.new(provider).query_params).to eq( { placements_to_show: "available_placements", academic_year_id: current_academic_year.id, @@ -200,7 +218,7 @@ schools = create_list(:school, 2) expect( - described_class.new(school_ids: schools.pluck(:id)).schools, + described_class.new(provider, school_ids: schools.pluck(:id)).schools, ).to match_array(schools) end end @@ -210,7 +228,7 @@ subjects = create_list(:subject, 2) expect( - described_class.new(subject_ids: subjects.pluck(:id)).subjects, + described_class.new(provider, subject_ids: subjects.pluck(:id)).subjects, ).to match_array(subjects) end end @@ -220,7 +238,7 @@ terms = create_list(:placements_term, 2, :spring) expect( - described_class.new(term_ids: terms.pluck(:id)).terms, + described_class.new(provider, term_ids: terms.pluck(:id)).terms, ).to match_array(terms) end end diff --git a/spec/mailers/user_mailer_spec.rb b/spec/mailers/user_mailer_spec.rb index e516b0b03..d55f3d414 100644 --- a/spec/mailers/user_mailer_spec.rb +++ b/spec/mailers/user_mailer_spec.rb @@ -558,8 +558,8 @@ expect(placement_provider_assigned_notification.body).to have_content <<~EMAIL Provider 1 has been assigned to the following placement: - [School 1](http://placements.localhost/placements/#{placement.id}) - [Mathematics](http://placements.localhost/placements/#{placement.id}) + [School 1](http://placements.localhost/providers/#{provider.id}/placements/#{placement.id}) + [Mathematics](http://placements.localhost/providers/#{provider.id}/placements/#{placement.id}) # What happens next? @@ -594,8 +594,8 @@ expect(placement_provider_removed_notification.body).to have_content <<~EMAIL Provider 1 is no longer able to allocate a trainee on the following placement: - [School 1](http://placements.localhost/placements/#{placement.id}) - [Mathematics](http://placements.localhost/placements/#{placement.id}) + [School 1](http://placements.localhost/providers/#{provider.id}/placements/#{placement.id}) + [Mathematics](http://placements.localhost/providers/#{provider.id}/placements/#{placement.id}) # What happens next? diff --git a/spec/requests/placements/providers/placements_spec.rb b/spec/requests/placements/providers/placements_spec.rb index 12d09eb09..438bd450f 100644 --- a/spec/requests/placements/providers/placements_spec.rb +++ b/spec/requests/placements/providers/placements_spec.rb @@ -11,7 +11,7 @@ describe "GET /placements" do context "when an organisation is present" do before do - get placements_placements_path + get placements_provider_placements_path(provider) end it "returns http success" do @@ -22,20 +22,5 @@ expect(response).to render_template("placements/index") end end - - context "when an organisation is not present" do - let(:dfe_sign_in_user_double) { instance_double(DfESignInUser) } - - before do - allow(DfESignInUser).to receive(:new).and_return(dfe_sign_in_user_double) - allow(dfe_sign_in_user_double).to receive(:user).and_return(current_user) - allow(current_user).to receive(:current_organisation).and_return(nil) - get placements_placements_path - end - - it "redirects the user to the organisations page if the current user does not have a current organisation" do - expect(response).to redirect_to placements_organisations_path - end - end end end diff --git a/spec/system/placements/organisations/view_organisations_spec.rb b/spec/system/placements/organisations/view_organisations_spec.rb index cbfad4de7..4dfef81fd 100644 --- a/spec/system/placements/organisations/view_organisations_spec.rb +++ b/spec/system/placements/organisations/view_organisations_spec.rb @@ -22,7 +22,7 @@ when_i_click_on_change_organisation i_am_redirected_to_organisation_index when_i_click_on_provider_name - then_i_see_the_placements_search_page + then_i_see_the_placements_search_page(multi_org_provider) when_i_click_on_change_organisation i_am_redirected_to_organisation_index end @@ -112,8 +112,8 @@ def when_i_click_on_provider_name click_on "Provider 1" end - def then_i_see_the_placements_search_page - expect(page).to have_current_path placements_placements_path, ignore_query: true + def then_i_see_the_placements_search_page(provider) + expect(page).to have_current_path placements_provider_placements_path(provider), ignore_query: true within(".app-primary-navigation__nav") do expect(page).to have_link "Placements", current: "page" expect(page).to have_link "Partner schools", current: "false" @@ -137,7 +137,7 @@ def then_i_see_the_one_school(school) def then_i_see_the_one_provider expect(page).not_to have_content "Change organisation" - then_i_see_the_placements_search_page + then_i_see_the_placements_search_page(one_provider) end def when_i_visit_sign_in_path diff --git a/spec/system/placements/placements/searches_filter_options_for_placements_spec.rb b/spec/system/placements/placements/searches_filter_options_for_placements_spec.rb index c669bfc5c..d870ab453 100644 --- a/spec/system/placements/placements/searches_filter_options_for_placements_spec.rb +++ b/spec/system/placements/placements/searches_filter_options_for_placements_spec.rb @@ -108,7 +108,7 @@ def when_i_click_on(text) alias_method :and_i_click_on, :when_i_click_on def when_i_visit_the_placements_index_page(params = {}) - visit placements_placements_path(params) + visit placements_provider_placements_path(provider, params) expect_placements_to_be_selected_in_primary_navigation end diff --git a/spec/system/placements/placements/searching_for_a_placement_spec.rb b/spec/system/placements/placements/searching_for_a_placement_spec.rb index 4c8e4073d..62d000c4a 100644 --- a/spec/system/placements/placements/searching_for_a_placement_spec.rb +++ b/spec/system/placements/placements/searching_for_a_placement_spec.rb @@ -125,7 +125,7 @@ def when_i_click_on(text) alias_method :and_i_click_on, :when_i_click_on def when_i_visit_the_placements_index_page(params = {}) - visit placements_placements_path(params) + visit placements_provider_placements_path(provider, params) expect_placements_to_be_selected_in_primary_navigation end @@ -172,7 +172,7 @@ def then_i_can_see_a_preset_filter(filter, value) alias_method :and_i_can_see_a_preset_filter, :then_i_can_see_a_preset_filter def then_i_see_the_empty_state - expect(page).to have_content I18n.t("placements.placements.index.no_results") + expect(page).to have_content I18n.t("placements.providers.placements.index.no_results") end # Stub requests diff --git a/spec/system/placements/placements/view_a_placement_spec.rb b/spec/system/placements/placements/view_a_placement_spec.rb index 844149fa4..56fa23d7e 100644 --- a/spec/system/placements/placements/view_a_placement_spec.rb +++ b/spec/system/placements/placements/view_a_placement_spec.rb @@ -78,7 +78,7 @@ def given_i_sign_in_as_patricia end def when_i_visit_the_placement_show_page - visit placements_placement_path(placement) + visit placements_provider_placement_path(provider, placement) expect_placements_to_be_selected_in_primary_navigation end diff --git a/spec/system/placements/placements/view_placements_list_spec.rb b/spec/system/placements/placements/view_placements_list_spec.rb index d3ce5e308..89d844251 100644 --- a/spec/system/placements/placements/view_placements_list_spec.rb +++ b/spec/system/placements/placements/view_placements_list_spec.rb @@ -333,7 +333,7 @@ def when_i_click_on(text) alias_method :and_i_click_on, :when_i_click_on def when_i_visit_the_placements_index_page(params = {}) - visit placements_placements_path(params) + visit placements_provider_placements_path(provider, params) expect_placements_to_be_selected_in_primary_navigation end @@ -350,7 +350,7 @@ def expect_placements_to_be_selected_in_primary_navigation end def then_i_see_the_empty_state - expect(page).to have_content I18n.t("placements.placements.index.no_results") + expect(page).to have_content I18n.t("placements.providers.placements.index.no_results") end def then_i_can_see_a_placement_for_school_and_subject(school_name, subject_name) diff --git a/spec/system/placements/sign_in_as_a_placements_user_spec.rb b/spec/system/placements/sign_in_as_a_placements_user_spec.rb index 9e54eb605..51ab2532c 100644 --- a/spec/system/placements/sign_in_as_a_placements_user_spec.rb +++ b/spec/system/placements/sign_in_as_a_placements_user_spec.rb @@ -369,7 +369,7 @@ def when_i_visit_the_school_users_path(organisation) end def when_i_visit_the_placements_path - visit placements_placements_path + visit placements_provider_placements_path(organisation) end def then_i_am_redirected_to_the_school_users_page(organisation) @@ -385,7 +385,7 @@ def then_i_can_see_the_placements_school_placements_page end def then_i_can_see_the_placements_page - expect(page).to have_current_path(placements_placements_path) + expect(page).to have_current_path(placements_provider_placements_path(organisation)) end def and_i_see_an_empty_organsations_page