diff --git a/app/controllers/browse_controller.rb b/app/controllers/browse_controller.rb index 2b0fa094c..316238f6c 100644 --- a/app/controllers/browse_controller.rb +++ b/app/controllers/browse_controller.rb @@ -1,5 +1,6 @@ class BrowseController < ApplicationController slimmer_template "gem_layout_full_width" + include RecruitmentBannerHelper def index page = MainstreamBrowsePage.find("/browse") diff --git a/app/controllers/organisations_controller.rb b/app/controllers/organisations_controller.rb index ef27a0590..d459e8a69 100644 --- a/app/controllers/organisations_controller.rb +++ b/app/controllers/organisations_controller.rb @@ -1,5 +1,6 @@ class OrganisationsController < ApplicationController skip_before_action :set_expiry + include RecruitmentBannerHelper before_action do set_expiry content_item.max_age, public_cache: content_item.public_cache end diff --git a/app/views/browse/show.html.erb b/app/views/browse/show.html.erb index 4031ffb37..f431ca3d5 100644 --- a/app/views/browse/show.html.erb +++ b/app/views/browse/show.html.erb @@ -1,5 +1,4 @@ <% add_view_stylesheet("browse") %> - <% content_for :title, page.title %> <%= render 'shared/tag_meta', tag: page %> @@ -20,6 +19,8 @@ } %> <% end %> +<%= render partial: 'shared/intervention_banner' %> + <%= render "shared/browse_header", { margin_bottom: page.slug == "benefits" ? 7 : 9 } do %>

<%= page.title %> diff --git a/app/views/organisations/show.html.erb b/app/views/organisations/show.html.erb index 13cf84238..a9ea79948 100644 --- a/app/views/organisations/show.html.erb +++ b/app/views/organisations/show.html.erb @@ -2,6 +2,7 @@ <%= render partial: 'meta', locals: { organisation: @organisation } %> <%= render partial: 'breadcrumb' %> +<%= render partial: 'shared/intervention_banner' %> <%= render partial: 'header' %> <%= render 'govuk_publishing_components/components/machine_readable_metadata', schema: :organisation, diff --git a/lib/data/recruitment_banners.yml b/lib/data/recruitment_banners.yml index 1cff13a8d..b739ec287 100644 --- a/lib/data/recruitment_banners.yml +++ b/lib/data/recruitment_banners.yml @@ -9,3 +9,10 @@ # - /foreign-travel-advice banners: +- name: DWP user research banner + suggestion_text: Help improve GOV.UK + suggestion_link_text: Take part in user research (opens in a new tab) + survey_url: https://forms.office.com/e/CkfCRwdLQj + page_paths: + - /government/organisations/department-for-work-pensions + - /browse/benefits diff --git a/spec/features/recruitment_banner_spec.rb b/spec/features/recruitment_banner_spec.rb new file mode 100644 index 000000000..2ff70bad2 --- /dev/null +++ b/spec/features/recruitment_banner_spec.rb @@ -0,0 +1,43 @@ +require "integration_spec_helper" + +RSpec.feature "Research panel banner" do + include SearchApiHelpers + include OrganisationHelpers + include RecruitmentBannerHelper + + scenario "browse pages where we want to display Brand User Research banner" do + base_path = "/browse/benefits" + schema = GovukSchemas::Example.find("mainstream_browse_page", example_name: "level_2_page") + schema["base_path"] = base_path + stub_content_store_has_item(schema["base_path"], schema) + search_api_has_documents_for_browse_page(schema["content_id"], [base_path], page_size: SearchApiSearch::PAGE_SIZE_TO_GET_EVERYTHING) + + visit schema["base_path"] + + expect(page.status_code).to eq(200) + expect(page).to have_selector(".gem-c-intervention") + end + + scenario "organisation pages where we want to display Brand User Research banner" do + base_path = "/government/organisations/department-for-work-pensions" + schema = GovukSchemas::Example.find("organisation", example_name: "tribunal") + schema["base_path"] = base_path + stub_content_and_search(schema) + + visit schema["base_path"] + + expect(page.status_code).to eq(200) + expect(page).to have_selector(".gem-c-intervention") + end + + scenario "pages where we don't want to display Brand User Research banner" do + schema = GovukSchemas::Example.find("mainstream_browse_page", example_name: "level_2_page") + stub_content_store_has_item(schema["base_path"], schema) + search_api_has_documents_for_browse_page(schema["content_id"], [schema["base_path"]], page_size: SearchApiSearch::PAGE_SIZE_TO_GET_EVERYTHING) + + visit schema["base_path"] + + expect(page.status_code).to eq(200) + expect(page).to_not have_selector(".gem-c-intervention") + end +end