diff --git a/spec/support/slimmer_templates/wrapper.html b/spec/support/slimmer_templates/wrapper.html new file mode 100644 index 0000000000..c0844d8a2b --- /dev/null +++ b/spec/support/slimmer_templates/wrapper.html @@ -0,0 +1,26 @@ + + + Test Template + + + +
Hello!
+ + + + + +
+ + + + \ No newline at end of file diff --git a/spec/system/service_manual_spec.rb b/spec/system/service_manual_spec.rb index 8a16c30f09..4f8ad9f8b6 100644 --- a/spec/system/service_manual_spec.rb +++ b/spec/system/service_manual_spec.rb @@ -1,31 +1,27 @@ +# WARNING: This test won't catch if the actual layouts change in static. It's +# only testing whether we're correctly telling slimmer to process the search +# elements, and slimmer is trying to process the layouts in the way we expect. RSpec.describe("Service Manual", type: :system) do let!(:content_item) { content_store_has_schema_example("service_manual_guide", "service_manual_guide") } let!(:path) { "/#{path_for(content_item)}" } - it "has a search form scoped to the manual" do - visit path - - expect(page).to have_css("input") + before do + html = File.read(Rails.root.join("spec/support/slimmer_templates/wrapper.html")) + allow_any_instance_of(Slimmer::Skin).to receive(:load_template).and_return(html) end - # it "tells slimmer to scope search results to the manual for a service manual guide" do - # content_item = content_store_has_schema_example("service_manual_guide", "service_manual_guide") - - # expect(Slimmer::Processors::SearchParameterInserter).to receive(:new).with(hash_including: { - # Slimmer::Headers::SEARCH_PARAMETERS_HEADER => { filter_manual: "/service-manual" }.to_json, - # }) - # get "/#{path_for(content_item)}" + it "has a search form scoped to the manual" do + content_item = content_store_has_schema_example("service_manual_guide", "service_manual_guide") + visit "/#{path_for(content_item)}" - # # byebug - # # expect(response.body).to have_css("input") - # # assert_select("input[type='hidden'][name='filter_manual'][values='/service-manual']") - # # expect(response.headers[Slimmer::Headers::SEARCH_PARAMETERS_HEADER]).to eq({ filter_manual: "/service-manual" }.to_json) - # end + expect(page).to have_css("#global-header #search") + expect(page).to have_css("form#search input[type=hidden][name=filter_manual][value='/service-manual']", visible: false) + end - # it("tells slimmer not to include a search box in the header for the service manual homepage") do - # content_item = content_store_has_schema_example("service_manual_homepage", "service_manual_homepage") - # get "/#{path_for(content_item)}" + it "does not show a search box for the manual homepage" do + content_item = content_store_has_schema_example("service_manual_homepage", "service_manual_homepage") + visit "/#{path_for(content_item)}" - # expect(response.headers[Slimmer::Headers::REMOVE_SEARCH_HEADER]).to be true - # end + expect(page).not_to have_css("#global-header #search") + end end