slimmer 9.6.0 → 10.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
 - data/CHANGELOG.md +10 -1
 - data/README.md +9 -9
 - data/lib/slimmer.rb +1 -4
 - data/lib/slimmer/cucumber.rb +2 -2
 - data/lib/slimmer/{shared_templates.rb → govuk_components.rb} +3 -3
 - data/lib/slimmer/headers.rb +0 -42
 - data/lib/slimmer/processors/metadata_inserter.rb +1 -7
 - data/lib/slimmer/rspec.rb +2 -2
 - data/lib/slimmer/skin.rb +1 -15
 - data/lib/slimmer/test_helpers/{shared_templates.rb → govuk_components.rb} +1 -1
 - data/lib/slimmer/version.rb +1 -1
 - data/test/headers_test.rb +0 -133
 - data/test/processors/metadata_inserter_test.rb +0 -63
 - data/test/skin_test.rb +0 -24
 - data/test/test_helper.rb +0 -3
 - data/test/test_helpers/{shared_templates_test.rb → govuk_components_test.rb} +7 -7
 - data/test/typical_usage_test.rb +1 -53
 - metadata +24 -49
 - data/lib/slimmer/artefact.rb +0 -47
 - data/lib/slimmer/processors/related_items_inserter.rb +0 -22
 - data/lib/slimmer/processors/section_inserter.rb +0 -49
 - data/test/artefact_test.rb +0 -119
 - data/test/fixtures/related.raw.html.erb +0 -33
 - data/test/processors/related_items_inserter_test.rb +0 -59
 - data/test/processors/section_inserter_test.rb +0 -193
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA1:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: b7b991ffcdf6cdee0c893b13695537a444d9272a
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: 06bfc18db4b43fd71a9348ea4d2bf0b24113311a
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: 9edba40f3ccaf964d893580121058a6b5aeba3d7d0112b068006c15251d941ac4960efeebeaec8347550b02364935daa82c602c1102951c47ac8e5cb7b5558dd
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: 46e4d0f6bab847439aca310d7e00d4b080e3b0ee2d6d44afc321b0d973550af13c7f4eedaaa3139b487810b3d10c50b812a4fee003868598d8185c7cadd68231
         
     | 
    
        data/CHANGELOG.md
    CHANGED
    
    | 
         @@ -1,3 +1,12 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # 10.0.0
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            * Removes the need_id meta tag, which is no longer used.
         
     | 
| 
      
 4 
     | 
    
         
            +
            * Removes the functionality for breadcrumbs, related links and artefact-powered
         
     | 
| 
      
 5 
     | 
    
         
            +
              metatags.
         
     | 
| 
      
 6 
     | 
    
         
            +
            * Drop support for old Rails & Ruby versions. This gem now supports Rails 4.2 and 5.X
         
     | 
| 
      
 7 
     | 
    
         
            +
              on Ruby 2.1 and 2.2.
         
     | 
| 
      
 8 
     | 
    
         
            +
            * Renames `Slimmer::SharedTemplates` to `Slimmer::GovukComponents`
         
     | 
| 
      
 9 
     | 
    
         
            +
             
     | 
| 
       1 
10 
     | 
    
         
             
            # 9.6.0
         
     | 
| 
       2 
11 
     | 
    
         | 
| 
       3 
12 
     | 
    
         
             
            * Adds an 'inside header inserter' processor which allows an application to
         
     | 
| 
         @@ -19,7 +28,7 @@ 
     | 
|
| 
       19 
28 
     | 
    
         | 
| 
       20 
29 
     | 
    
         
             
            * Adds an RSpec helper that makes it easy for host applications to
         
     | 
| 
       21 
30 
     | 
    
         
             
              configure Slimmer correctly under test.
         
     | 
| 
       22 
     | 
    
         
            -
             
     | 
| 
      
 31 
     | 
    
         
            +
             
     | 
| 
       23 
32 
     | 
    
         
             
              Fixes `stub_shared_component_locales` helper to correctly stub HTTP
         
     | 
| 
       24 
33 
     | 
    
         
             
              requests to fetch locale information when rendering its templates.
         
     | 
| 
       25 
34 
     | 
    
         | 
    
        data/README.md
    CHANGED
    
    | 
         @@ -44,7 +44,7 @@ To get asset tag helpers to point to your external asset server, add 
     | 
|
| 
       44 
44 
     | 
    
         
             
            ```rb
         
     | 
| 
       45 
45 
     | 
    
         
             
            config.action_controller.asset_host = "http://my.alternative.host"
         
     | 
| 
       46 
46 
     | 
    
         
             
            ```
         
     | 
| 
       47 
     | 
    
         
            -
             
     | 
| 
      
 47 
     | 
    
         
            +
             
     | 
| 
       48 
48 
     | 
    
         
             
            to `application.rb`.
         
     | 
| 
       49 
49 
     | 
    
         | 
| 
       50 
50 
     | 
    
         
             
            ## Specifying a template
         
     | 
| 
         @@ -101,25 +101,25 @@ YourApp::Application.configure do 
     | 
|
| 
       101 
101 
     | 
    
         
             
            end
         
     | 
| 
       102 
102 
     | 
    
         
             
            ```
         
     | 
| 
       103 
103 
     | 
    
         | 
| 
       104 
     | 
    
         
            -
            ##  
     | 
| 
      
 104 
     | 
    
         
            +
            ## GOV.UK Components
         
     | 
| 
       105 
105 
     | 
    
         | 
| 
       106 
     | 
    
         
            -
            To use shared template components you need to include the  
     | 
| 
      
 106 
     | 
    
         
            +
            To use [shared template components](https://govuk-component-guide.herokuapp.com/) you need to include the GOV.UK component module:
         
     | 
| 
       107 
107 
     | 
    
         | 
| 
       108 
108 
     | 
    
         
             
            ```rb
         
     | 
| 
       109 
109 
     | 
    
         
             
            class ApplicationController < ActionController::Base
         
     | 
| 
       110 
     | 
    
         
            -
              include Slimmer:: 
     | 
| 
      
 110 
     | 
    
         
            +
              include Slimmer::GovukComponents
         
     | 
| 
       111 
111 
     | 
    
         
             
            end
         
     | 
| 
       112 
112 
     | 
    
         
             
            ```
         
     | 
| 
       113 
113 
     | 
    
         | 
| 
       114 
     | 
    
         
            -
            This will make calls out to static when you try and render a partial prefixed with ` 
     | 
| 
      
 114 
     | 
    
         
            +
            This will make calls out to static when you try and render a partial prefixed with `govuk_component`:
         
     | 
| 
       115 
115 
     | 
    
         | 
| 
       116 
116 
     | 
    
         
             
            ```erb
         
     | 
| 
       117 
     | 
    
         
            -
            <%= render partial: ' 
     | 
| 
      
 117 
     | 
    
         
            +
            <%= render partial: 'govuk_component/example_component' %>
         
     | 
| 
       118 
118 
     | 
    
         
             
            ```
         
     | 
| 
       119 
119 
     | 
    
         | 
| 
       120 
120 
     | 
    
         
             
            You will need a copy of static running for the templates to be loaded from.
         
     | 
| 
       121 
121 
     | 
    
         | 
| 
       122 
     | 
    
         
            -
            ### Testing  
     | 
| 
      
 122 
     | 
    
         
            +
            ### Testing components
         
     | 
| 
       123 
123 
     | 
    
         | 
| 
       124 
124 
     | 
    
         
             
            In test mode (when `Rails.env.test?` returns `true`), shared components are not
         
     | 
| 
       125 
125 
     | 
    
         
             
            fetched from Static. Instead they are rendered as a dummy tag which contains a
         
     | 
| 
         @@ -130,8 +130,8 @@ component to assert that it was used. You can make it available in your tests 
     | 
|
| 
       130 
130 
     | 
    
         
             
            with:
         
     | 
| 
       131 
131 
     | 
    
         | 
| 
       132 
132 
     | 
    
         
             
            ```rb
         
     | 
| 
       133 
     | 
    
         
            -
            require 'slimmer/test_helpers/ 
     | 
| 
       134 
     | 
    
         
            -
            include Slimmer::TestHelpers:: 
     | 
| 
      
 133 
     | 
    
         
            +
            require 'slimmer/test_helpers/govuk_components'
         
     | 
| 
      
 134 
     | 
    
         
            +
            include Slimmer::TestHelpers::GovukComponents
         
     | 
| 
       135 
135 
     | 
    
         
             
            ```
         
     | 
| 
       136 
136 
     | 
    
         | 
| 
       137 
137 
     | 
    
         
             
            And then assert that the component has been used:
         
     | 
    
        data/lib/slimmer.rb
    CHANGED
    
    | 
         @@ -16,9 +16,8 @@ module Slimmer 
     | 
|
| 
       16 
16 
     | 
    
         
             
              autoload :Template, 'slimmer/template'
         
     | 
| 
       17 
17 
     | 
    
         
             
              autoload :App, 'slimmer/app'
         
     | 
| 
       18 
18 
     | 
    
         
             
              autoload :Headers, 'slimmer/headers'
         
     | 
| 
       19 
     | 
    
         
            -
              autoload :Artefact, 'slimmer/artefact'
         
     | 
| 
       20 
19 
     | 
    
         | 
| 
       21 
     | 
    
         
            -
              autoload : 
     | 
| 
      
 20 
     | 
    
         
            +
              autoload :GovukComponents, 'slimmer/govuk_components'
         
     | 
| 
       22 
21 
     | 
    
         
             
              autoload :ComponentResolver, 'slimmer/component_resolver'
         
     | 
| 
       23 
22 
     | 
    
         
             
              autoload :I18nBackend, 'slimmer/i18n_backend'
         
     | 
| 
       24 
23 
     | 
    
         | 
| 
         @@ -31,13 +30,11 @@ module Slimmer 
     | 
|
| 
       31 
30 
     | 
    
         
             
                autoload :HeaderContextInserter, 'slimmer/processors/header_context_inserter'
         
     | 
| 
       32 
31 
     | 
    
         
             
                autoload :InsideHeaderInserter, 'slimmer/processors/inside_header_inserter'
         
     | 
| 
       33 
32 
     | 
    
         
             
                autoload :NavigationMover, 'slimmer/processors/navigation_mover'
         
     | 
| 
       34 
     | 
    
         
            -
                autoload :RelatedItemsInserter, 'slimmer/processors/related_items_inserter'
         
     | 
| 
       35 
33 
     | 
    
         
             
                autoload :ReportAProblemInserter, 'slimmer/processors/report_a_problem_inserter'
         
     | 
| 
       36 
34 
     | 
    
         
             
                autoload :SearchIndexSetter, 'slimmer/processors/search_index_setter'
         
     | 
| 
       37 
35 
     | 
    
         
             
                autoload :SearchPathSetter, 'slimmer/processors/search_path_setter'
         
     | 
| 
       38 
36 
     | 
    
         
             
                autoload :SearchParameterInserter, 'slimmer/processors/search_parameter_inserter'
         
     | 
| 
       39 
37 
     | 
    
         
             
                autoload :SearchRemover, 'slimmer/processors/search_remover'
         
     | 
| 
       40 
     | 
    
         
            -
                autoload :SectionInserter, 'slimmer/processors/section_inserter'
         
     | 
| 
       41 
38 
     | 
    
         
             
                autoload :TagMover, 'slimmer/processors/tag_mover'
         
     | 
| 
       42 
39 
     | 
    
         
             
                autoload :TitleInserter, 'slimmer/processors/title_inserter'
         
     | 
| 
       43 
40 
     | 
    
         
             
              end
         
     | 
    
        data/lib/slimmer/cucumber.rb
    CHANGED
    
    | 
         @@ -1,9 +1,9 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            require 'cucumber'
         
     | 
| 
       2 
2 
     | 
    
         | 
| 
       3 
3 
     | 
    
         
             
            require 'slimmer/test'
         
     | 
| 
       4 
     | 
    
         
            -
            require 'slimmer/test_helpers/ 
     | 
| 
      
 4 
     | 
    
         
            +
            require 'slimmer/test_helpers/govuk_components'
         
     | 
| 
       5 
5 
     | 
    
         | 
| 
       6 
     | 
    
         
            -
            World(Slimmer::TestHelpers:: 
     | 
| 
      
 6 
     | 
    
         
            +
            World(Slimmer::TestHelpers::GovukComponents)
         
     | 
| 
       7 
7 
     | 
    
         | 
| 
       8 
8 
     | 
    
         
             
            Before do
         
     | 
| 
       9 
9 
     | 
    
         
             
              stub_shared_component_locales
         
     | 
| 
         @@ -1,10 +1,10 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            module Slimmer
         
     | 
| 
       2 
     | 
    
         
            -
              module  
     | 
| 
      
 2 
     | 
    
         
            +
              module GovukComponents
         
     | 
| 
       3 
3 
     | 
    
         
             
                def self.included into
         
     | 
| 
       4 
     | 
    
         
            -
                  into.before_action : 
     | 
| 
      
 4 
     | 
    
         
            +
                  into.before_action :add_govuk_components
         
     | 
| 
       5 
5 
     | 
    
         
             
                end
         
     | 
| 
       6 
6 
     | 
    
         | 
| 
       7 
     | 
    
         
            -
                def  
     | 
| 
      
 7 
     | 
    
         
            +
                def add_govuk_components
         
     | 
| 
       8 
8 
     | 
    
         
             
                  append_view_path Slimmer::ComponentResolver.new
         
     | 
| 
       9 
9 
     | 
    
         | 
| 
       10 
10 
     | 
    
         
             
                  return if slimmer_backend_included?
         
     | 
    
        data/lib/slimmer/headers.rb
    CHANGED
    
    | 
         @@ -20,7 +20,6 @@ module Slimmer 
     | 
|
| 
       20 
20 
     | 
    
         
             
                }
         
     | 
| 
       21 
21 
     | 
    
         | 
| 
       22 
22 
     | 
    
         
             
                APPLICATION_NAME_HEADER = "#{HEADER_PREFIX}-#{SLIMMER_HEADER_MAPPING[:application_name]}"
         
     | 
| 
       23 
     | 
    
         
            -
                ARTEFACT_HEADER = "#{HEADER_PREFIX}-Artefact"
         
     | 
| 
       24 
23 
     | 
    
         
             
                FORMAT_HEADER = "#{HEADER_PREFIX}-#{SLIMMER_HEADER_MAPPING[:format]}"
         
     | 
| 
       25 
24 
     | 
    
         
             
                ORGANISATIONS_HEADER = "#{HEADER_PREFIX}-#{SLIMMER_HEADER_MAPPING[:organisations]}"
         
     | 
| 
       26 
25 
     | 
    
         
             
                REPORT_A_PROBLEM_FORM = "#{HEADER_PREFIX}-#{SLIMMER_HEADER_MAPPING[:report_a_problem]}"
         
     | 
| 
         @@ -40,46 +39,5 @@ module Slimmer 
     | 
|
| 
       40 
39 
     | 
    
         
             
                    headers["#{HEADER_PREFIX}-#{header_suffix}"] = value.to_s if value
         
     | 
| 
       41 
40 
     | 
    
         
             
                  end
         
     | 
| 
       42 
41 
     | 
    
         
             
                end
         
     | 
| 
       43 
     | 
    
         
            -
             
     | 
| 
       44 
     | 
    
         
            -
                def set_slimmer_artefact(artefact_input)
         
     | 
| 
       45 
     | 
    
         
            -
                  if artefact_input.is_a?(Hash) or artefact_input.is_a?(OpenStruct)
         
     | 
| 
       46 
     | 
    
         
            -
                    artefact = artefact_input.dup
         
     | 
| 
       47 
     | 
    
         
            -
                  elsif artefact_input.respond_to?(:to_hash)
         
     | 
| 
       48 
     | 
    
         
            -
                    artefact = artefact_input.to_hash
         
     | 
| 
       49 
     | 
    
         
            -
                  end
         
     | 
| 
       50 
     | 
    
         
            -
                  yield artefact if block_given?
         
     | 
| 
       51 
     | 
    
         
            -
                  headers[ARTEFACT_HEADER] = artefact.to_json
         
     | 
| 
       52 
     | 
    
         
            -
                end
         
     | 
| 
       53 
     | 
    
         
            -
             
     | 
| 
       54 
     | 
    
         
            -
                def set_slimmer_artefact_overriding_section(artefact_input, details = {})
         
     | 
| 
       55 
     | 
    
         
            -
                  set_slimmer_artefact(artefact_input) do |artefact|
         
     | 
| 
       56 
     | 
    
         
            -
                    if tag = slimmer_section_tag_for_details(details)
         
     | 
| 
       57 
     | 
    
         
            -
                      artefact["tags"] = [tag] + (artefact["tags"] || [])
         
     | 
| 
       58 
     | 
    
         
            -
                    end
         
     | 
| 
       59 
     | 
    
         
            -
                  end
         
     | 
| 
       60 
     | 
    
         
            -
                end
         
     | 
| 
       61 
     | 
    
         
            -
             
     | 
| 
       62 
     | 
    
         
            -
                def set_slimmer_dummy_artefact(details = {})
         
     | 
| 
       63 
     | 
    
         
            -
                  set_slimmer_artefact({}) do |artefact|
         
     | 
| 
       64 
     | 
    
         
            -
                    artefact["title"] = details[:title] if details[:title]
         
     | 
| 
       65 
     | 
    
         
            -
                    if tag = slimmer_section_tag_for_details(details)
         
     | 
| 
       66 
     | 
    
         
            -
                      artefact["tags"] = [tag]
         
     | 
| 
       67 
     | 
    
         
            -
                    end
         
     | 
| 
       68 
     | 
    
         
            -
                  end
         
     | 
| 
       69 
     | 
    
         
            -
                end
         
     | 
| 
       70 
     | 
    
         
            -
             
     | 
| 
       71 
     | 
    
         
            -
                def slimmer_section_tag_for_details(details)
         
     | 
| 
       72 
     | 
    
         
            -
                  if details[:section_name] and details[:section_link]
         
     | 
| 
       73 
     | 
    
         
            -
                    tag = {
         
     | 
| 
       74 
     | 
    
         
            -
                      "title" => details[:section_name],
         
     | 
| 
       75 
     | 
    
         
            -
                      "details" => {"type" => "section"},
         
     | 
| 
       76 
     | 
    
         
            -
                      "content_with_tag" => {"web_url" => details[:section_link]},
         
     | 
| 
       77 
     | 
    
         
            -
                    }
         
     | 
| 
       78 
     | 
    
         
            -
                    if details[:parent]
         
     | 
| 
       79 
     | 
    
         
            -
                      tag["parent"] = slimmer_section_tag_for_details(details[:parent])
         
     | 
| 
       80 
     | 
    
         
            -
                    end
         
     | 
| 
       81 
     | 
    
         
            -
                    tag
         
     | 
| 
       82 
     | 
    
         
            -
                  end
         
     | 
| 
       83 
     | 
    
         
            -
                end
         
     | 
| 
       84 
42 
     | 
    
         
             
              end
         
     | 
| 
       85 
43 
     | 
    
         
             
            end
         
     | 
| 
         @@ -1,19 +1,13 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            module Slimmer::Processors
         
     | 
| 
       2 
2 
     | 
    
         
             
              class MetadataInserter
         
     | 
| 
       3 
     | 
    
         
            -
                def initialize(response,  
     | 
| 
      
 3 
     | 
    
         
            +
                def initialize(response, app_name)
         
     | 
| 
       4 
4 
     | 
    
         
             
                  @headers = response.headers
         
     | 
| 
       5 
     | 
    
         
            -
                  @artefact = artefact
         
     | 
| 
       6 
5 
     | 
    
         
             
                  @app_name = app_name
         
     | 
| 
       7 
6 
     | 
    
         
             
                end
         
     | 
| 
       8 
7 
     | 
    
         | 
| 
       9 
8 
     | 
    
         
             
                def filter(src, dest)
         
     | 
| 
       10 
9 
     | 
    
         
             
                  head = dest.at_css('head')
         
     | 
| 
       11 
10 
     | 
    
         | 
| 
       12 
     | 
    
         
            -
                  if @artefact
         
     | 
| 
       13 
     | 
    
         
            -
                    add_meta_tag('section', @artefact.primary_root_section["title"].downcase, head) if @artefact.primary_root_section
         
     | 
| 
       14 
     | 
    
         
            -
                    add_meta_tag('need-ids', @artefact.need_ids.join(',').downcase, head) if @artefact.need_ids
         
     | 
| 
       15 
     | 
    
         
            -
                  end
         
     | 
| 
       16 
     | 
    
         
            -
             
     | 
| 
       17 
11 
     | 
    
         
             
                  add_meta_tag('analytics:organisations', @headers[Slimmer::Headers::ORGANISATIONS_HEADER], head)
         
     | 
| 
       18 
12 
     | 
    
         
             
                  add_meta_tag('analytics:world-locations', @headers[Slimmer::Headers::WORLD_LOCATIONS_HEADER], head)
         
     | 
| 
       19 
13 
     | 
    
         
             
                  add_meta_tag('format', @headers[Slimmer::Headers::FORMAT_HEADER], head)
         
     | 
    
        data/lib/slimmer/rspec.rb
    CHANGED
    
    | 
         @@ -2,10 +2,10 @@ require 'rspec/core' 
     | 
|
| 
       2 
2 
     | 
    
         | 
| 
       3 
3 
     | 
    
         
             
            require 'slimmer'
         
     | 
| 
       4 
4 
     | 
    
         
             
            require 'slimmer/test'
         
     | 
| 
       5 
     | 
    
         
            -
            require 'slimmer/test_helpers/ 
     | 
| 
      
 5 
     | 
    
         
            +
            require 'slimmer/test_helpers/govuk_components'
         
     | 
| 
       6 
6 
     | 
    
         | 
| 
       7 
7 
     | 
    
         
             
            RSpec.configure do |config|
         
     | 
| 
       8 
     | 
    
         
            -
              config.include Slimmer::TestHelpers:: 
     | 
| 
      
 8 
     | 
    
         
            +
              config.include Slimmer::TestHelpers::GovukComponents
         
     | 
| 
       9 
9 
     | 
    
         | 
| 
       10 
10 
     | 
    
         
             
              config.before { stub_shared_component_locales }
         
     | 
| 
       11 
11 
     | 
    
         
             
            end
         
     | 
    
        data/lib/slimmer/skin.rb
    CHANGED
    
    | 
         @@ -104,7 +104,6 @@ module Slimmer 
     | 
|
| 
       104 
104 
     | 
    
         
             
                end
         
     | 
| 
       105 
105 
     | 
    
         | 
| 
       106 
106 
     | 
    
         
             
                def success(source_request, response, body)
         
     | 
| 
       107 
     | 
    
         
            -
                  artefact = artefact_from_header(response)
         
     | 
| 
       108 
107 
     | 
    
         
             
                  wrapper_id = options[:wrapper_id] || 'wrapper'
         
     | 
| 
       109 
108 
     | 
    
         
             
                  processors = [
         
     | 
| 
       110 
109 
     | 
    
         
             
                    Processors::TitleInserter.new(),
         
     | 
| 
         @@ -115,11 +114,9 @@ module Slimmer 
     | 
|
| 
       115 
114 
     | 
    
         
             
                    Processors::BodyClassCopier.new,
         
     | 
| 
       116 
115 
     | 
    
         
             
                    Processors::InsideHeaderInserter.new,
         
     | 
| 
       117 
116 
     | 
    
         
             
                    Processors::HeaderContextInserter.new(),
         
     | 
| 
       118 
     | 
    
         
            -
                    Processors:: 
     | 
| 
       119 
     | 
    
         
            -
                    Processors::MetadataInserter.new(response, artefact, options[:app_name]),
         
     | 
| 
      
 117 
     | 
    
         
            +
                    Processors::MetadataInserter.new(response, options[:app_name]),
         
     | 
| 
       120 
118 
     | 
    
         
             
                    Processors::SearchParameterInserter.new(response),
         
     | 
| 
       121 
119 
     | 
    
         
             
                    Processors::SearchPathSetter.new(response),
         
     | 
| 
       122 
     | 
    
         
            -
                    Processors::RelatedItemsInserter.new(self, artefact),
         
     | 
| 
       123 
120 
     | 
    
         
             
                    Processors::ReportAProblemInserter.new(self,
         
     | 
| 
       124 
121 
     | 
    
         
             
                                                           source_request.url,
         
     | 
| 
       125 
122 
     | 
    
         
             
                                                           response.headers,
         
     | 
| 
         @@ -137,16 +134,5 @@ module Slimmer 
     | 
|
| 
       137 
134 
     | 
    
         
             
                  ]
         
     | 
| 
       138 
135 
     | 
    
         
             
                  process(processors, body, template(template_name), rack_env)
         
     | 
| 
       139 
136 
     | 
    
         
             
                end
         
     | 
| 
       140 
     | 
    
         
            -
             
     | 
| 
       141 
     | 
    
         
            -
                def artefact_from_header(response)
         
     | 
| 
       142 
     | 
    
         
            -
                  if response.headers.include?(Headers::ARTEFACT_HEADER)
         
     | 
| 
       143 
     | 
    
         
            -
                    Artefact.new JSON.parse(response.headers[Headers::ARTEFACT_HEADER])
         
     | 
| 
       144 
     | 
    
         
            -
                  else
         
     | 
| 
       145 
     | 
    
         
            -
                    nil
         
     | 
| 
       146 
     | 
    
         
            -
                  end
         
     | 
| 
       147 
     | 
    
         
            -
                rescue JSON::ParserError => e
         
     | 
| 
       148 
     | 
    
         
            -
                  logger.error "Slimmer: Failed while parsing artefact header: #{[ e.message, e.backtrace ].flatten.join("\n")}"
         
     | 
| 
       149 
     | 
    
         
            -
                  nil
         
     | 
| 
       150 
     | 
    
         
            -
                end
         
     | 
| 
       151 
137 
     | 
    
         
             
              end
         
     | 
| 
       152 
138 
     | 
    
         
             
            end
         
     | 
    
        data/lib/slimmer/version.rb
    CHANGED
    
    
    
        data/test/headers_test.rb
    CHANGED
    
    | 
         @@ -49,142 +49,9 @@ class HeadersTest < MiniTest::Test 
     | 
|
| 
       49 
49 
     | 
    
         
             
                assert_equal "rhubarb", headers["X-Slimmer-Skip"]
         
     | 
| 
       50 
50 
     | 
    
         
             
              end
         
     | 
| 
       51 
51 
     | 
    
         | 
| 
       52 
     | 
    
         
            -
              def test_should_skip_missing_headers
         
     | 
| 
       53 
     | 
    
         
            -
                set_slimmer_headers section: "rhubarb"
         
     | 
| 
       54 
     | 
    
         
            -
                refute_includes headers.keys, "X-Slimmer-Need-ID"
         
     | 
| 
       55 
     | 
    
         
            -
              end
         
     | 
| 
       56 
     | 
    
         
            -
             
     | 
| 
       57 
52 
     | 
    
         
             
              def test_should_raise_an_exception_if_a_header_has_a_typo
         
     | 
| 
       58 
53 
     | 
    
         
             
                assert_raises Slimmer::Headers::InvalidHeader do
         
     | 
| 
       59 
54 
     | 
    
         
             
                  set_slimmer_headers seccion: "wrong"
         
     | 
| 
       60 
55 
     | 
    
         
             
                end
         
     | 
| 
       61 
56 
     | 
    
         
             
              end
         
     | 
| 
       62 
57 
     | 
    
         
             
            end
         
     | 
| 
       63 
     | 
    
         
            -
             
     | 
| 
       64 
     | 
    
         
            -
            describe Slimmer::Headers do
         
     | 
| 
       65 
     | 
    
         
            -
              include Slimmer::Headers
         
     | 
| 
       66 
     | 
    
         
            -
              attr_accessor :headers
         
     | 
| 
       67 
     | 
    
         
            -
             
     | 
| 
       68 
     | 
    
         
            -
              before do
         
     | 
| 
       69 
     | 
    
         
            -
                self.headers = {}
         
     | 
| 
       70 
     | 
    
         
            -
              end
         
     | 
| 
       71 
     | 
    
         
            -
             
     | 
| 
       72 
     | 
    
         
            -
              describe "setting the artefact header" do
         
     | 
| 
       73 
     | 
    
         
            -
                it "should convert a hash to JSON and insert into the header" do
         
     | 
| 
       74 
     | 
    
         
            -
                  artefact = {"foo" => "bar"}
         
     | 
| 
       75 
     | 
    
         
            -
                  self.set_slimmer_artefact(artefact)
         
     | 
| 
       76 
     | 
    
         
            -
                  assert_equal artefact.to_json, headers[Slimmer::Headers::ARTEFACT_HEADER]
         
     | 
| 
       77 
     | 
    
         
            -
                end
         
     | 
| 
       78 
     | 
    
         
            -
             
     | 
| 
       79 
     | 
    
         
            -
                it "should convert an OpenStruct to JSON" do
         
     | 
| 
       80 
     | 
    
         
            -
                  artefact = OpenStruct.new("foo" => "bar")
         
     | 
| 
       81 
     | 
    
         
            -
                  self.set_slimmer_artefact(artefact)
         
     | 
| 
       82 
     | 
    
         
            -
                  assert_equal({"foo" => "bar"}.to_json, headers[Slimmer::Headers::ARTEFACT_HEADER])
         
     | 
| 
       83 
     | 
    
         
            -
                end
         
     | 
| 
       84 
     | 
    
         
            -
             
     | 
| 
       85 
     | 
    
         
            -
                it "should handle an object that responds to :to_hash" do
         
     | 
| 
       86 
     | 
    
         
            -
                  hash = {"foo" => "bar", "slug" => "vat-rates"}
         
     | 
| 
       87 
     | 
    
         
            -
                  artefact = stub("Response", :to_hash => hash)
         
     | 
| 
       88 
     | 
    
         
            -
                  self.set_slimmer_artefact(artefact)
         
     | 
| 
       89 
     | 
    
         
            -
                  assert_equal hash.to_json, headers[Slimmer::Headers::ARTEFACT_HEADER]
         
     | 
| 
       90 
     | 
    
         
            -
                end
         
     | 
| 
       91 
     | 
    
         
            -
             
     | 
| 
       92 
     | 
    
         
            -
                it "should not have side-effects on the passed in hash" do
         
     | 
| 
       93 
     | 
    
         
            -
                  artefact = {"foo" => "bar", "slug" => "vat-rates", "actions" => "some_actions"}
         
     | 
| 
       94 
     | 
    
         
            -
                  artefact_copy = artefact.dup
         
     | 
| 
       95 
     | 
    
         
            -
                  self.set_slimmer_artefact(artefact)
         
     | 
| 
       96 
     | 
    
         
            -
                  assert_equal artefact_copy, artefact
         
     | 
| 
       97 
     | 
    
         
            -
                end
         
     | 
| 
       98 
     | 
    
         
            -
              end
         
     | 
| 
       99 
     | 
    
         
            -
             
     | 
| 
       100 
     | 
    
         
            -
              describe "setting the artefact and adding a dummy section" do
         
     | 
| 
       101 
     | 
    
         
            -
                it "should setup a section tag for the given name and link" do
         
     | 
| 
       102 
     | 
    
         
            -
                  artefact_input = {"foo" => "bar", "slug" => "vat-rates", "actions" => "some_actions"}
         
     | 
| 
       103 
     | 
    
         
            -
                  self.set_slimmer_artefact_overriding_section(artefact_input, :section_name => "Foo", :section_link => "/something/foo")
         
     | 
| 
       104 
     | 
    
         
            -
             
     | 
| 
       105 
     | 
    
         
            -
                  artefact = JSON.parse(headers[Slimmer::Headers::ARTEFACT_HEADER])
         
     | 
| 
       106 
     | 
    
         
            -
             
     | 
| 
       107 
     | 
    
         
            -
                  assert_equal "Foo", artefact["tags"][0]["title"]
         
     | 
| 
       108 
     | 
    
         
            -
                  assert_equal "section", artefact["tags"][0]["details"]["type"]
         
     | 
| 
       109 
     | 
    
         
            -
                  assert_equal "/something/foo", artefact["tags"][0]["content_with_tag"]["web_url"]
         
     | 
| 
       110 
     | 
    
         
            -
                end
         
     | 
| 
       111 
     | 
    
         
            -
             
     | 
| 
       112 
     | 
    
         
            -
                it "should not overwrite existing tags" do
         
     | 
| 
       113 
     | 
    
         
            -
                  artefact_input = {"foo" => "bar", "slug" => "vat-rates", "actions" => "some_actions", "tags" => ["foo", "bar"]}
         
     | 
| 
       114 
     | 
    
         
            -
                  self.set_slimmer_artefact_overriding_section(artefact_input, :section_name => "Foo", :section_link => "/something/foo")
         
     | 
| 
       115 
     | 
    
         
            -
             
     | 
| 
       116 
     | 
    
         
            -
                  artefact = JSON.parse(headers[Slimmer::Headers::ARTEFACT_HEADER])
         
     | 
| 
       117 
     | 
    
         
            -
             
     | 
| 
       118 
     | 
    
         
            -
                  assert_equal ["foo", "bar"], artefact["tags"][1..-1]
         
     | 
| 
       119 
     | 
    
         
            -
                end
         
     | 
| 
       120 
     | 
    
         
            -
             
     | 
| 
       121 
     | 
    
         
            -
                it "should not have side-effects on the passed in hash" do
         
     | 
| 
       122 
     | 
    
         
            -
                  artefact_input = {"foo" => "bar", "slug" => "vat-rates", "actions" => "some_actions"}
         
     | 
| 
       123 
     | 
    
         
            -
                  artefact_copy = artefact_input.dup
         
     | 
| 
       124 
     | 
    
         
            -
                  self.set_slimmer_artefact_overriding_section(artefact_input, :section_name => "Foo", :section_link => "/foo")
         
     | 
| 
       125 
     | 
    
         
            -
                  assert_equal artefact_copy, artefact_input
         
     | 
| 
       126 
     | 
    
         
            -
                end
         
     | 
| 
       127 
     | 
    
         
            -
             
     | 
| 
       128 
     | 
    
         
            -
                it "should work correctly with a gds_api response object" do
         
     | 
| 
       129 
     | 
    
         
            -
                  input_artefact = {"foo" => "bar", "slug" => "vat-rates", "actions" => "some_actions"}
         
     | 
| 
       130 
     | 
    
         
            -
                  api_response = GdsApi::Response.new(stub("HTTP Response", :code => 200, :body => input_artefact.to_json))
         
     | 
| 
       131 
     | 
    
         
            -
                  self.set_slimmer_artefact_overriding_section(api_response, :section_name => "Foo", :section_link => "/something/foo")
         
     | 
| 
       132 
     | 
    
         
            -
             
     | 
| 
       133 
     | 
    
         
            -
                  artefact = JSON.parse(headers[Slimmer::Headers::ARTEFACT_HEADER])
         
     | 
| 
       134 
     | 
    
         
            -
             
     | 
| 
       135 
     | 
    
         
            -
                  assert_equal "Foo", artefact["tags"][0]["title"]
         
     | 
| 
       136 
     | 
    
         
            -
                  assert_equal "section", artefact["tags"][0]["details"]["type"]
         
     | 
| 
       137 
     | 
    
         
            -
                  assert_equal "/something/foo", artefact["tags"][0]["content_with_tag"]["web_url"]
         
     | 
| 
       138 
     | 
    
         
            -
                end
         
     | 
| 
       139 
     | 
    
         
            -
              end
         
     | 
| 
       140 
     | 
    
         
            -
             
     | 
| 
       141 
     | 
    
         
            -
              describe "setting a dummy artefact in the artefact header" do
         
     | 
| 
       142 
     | 
    
         
            -
                it "should setup an artefact title" do
         
     | 
| 
       143 
     | 
    
         
            -
                  self.set_slimmer_dummy_artefact(:title => "Foo")
         
     | 
| 
       144 
     | 
    
         
            -
             
     | 
| 
       145 
     | 
    
         
            -
                  artefact = JSON.parse(headers[Slimmer::Headers::ARTEFACT_HEADER])
         
     | 
| 
       146 
     | 
    
         
            -
             
     | 
| 
       147 
     | 
    
         
            -
                  assert_equal "Foo", artefact["title"]
         
     | 
| 
       148 
     | 
    
         
            -
                end
         
     | 
| 
       149 
     | 
    
         
            -
             
     | 
| 
       150 
     | 
    
         
            -
                it "should setup a section tag for the given name and link" do
         
     | 
| 
       151 
     | 
    
         
            -
                  self.set_slimmer_dummy_artefact(:section_name => "Foo", :section_link => "/something/foo")
         
     | 
| 
       152 
     | 
    
         
            -
             
     | 
| 
       153 
     | 
    
         
            -
                  artefact = JSON.parse(headers[Slimmer::Headers::ARTEFACT_HEADER])
         
     | 
| 
       154 
     | 
    
         
            -
             
     | 
| 
       155 
     | 
    
         
            -
                  assert_equal "Foo", artefact["tags"][0]["title"]
         
     | 
| 
       156 
     | 
    
         
            -
                  assert_equal "section", artefact["tags"][0]["details"]["type"]
         
     | 
| 
       157 
     | 
    
         
            -
                  assert_equal "/something/foo", artefact["tags"][0]["content_with_tag"]["web_url"]
         
     | 
| 
       158 
     | 
    
         
            -
                end
         
     | 
| 
       159 
     | 
    
         
            -
             
     | 
| 
       160 
     | 
    
         
            -
                it "can set up a section tag with multiple levels of parents" do
         
     | 
| 
       161 
     | 
    
         
            -
                  self.set_slimmer_dummy_artefact(
         
     | 
| 
       162 
     | 
    
         
            -
                    :section_name => "Foo",
         
     | 
| 
       163 
     | 
    
         
            -
                    :section_link => "/something/baz/bar/foo",
         
     | 
| 
       164 
     | 
    
         
            -
                    :parent => {
         
     | 
| 
       165 
     | 
    
         
            -
                      :section_name => "Bar",
         
     | 
| 
       166 
     | 
    
         
            -
                      :section_link => "/something/baz/bar",
         
     | 
| 
       167 
     | 
    
         
            -
                      :parent => {
         
     | 
| 
       168 
     | 
    
         
            -
                        :section_name => "Baz",
         
     | 
| 
       169 
     | 
    
         
            -
                        :section_link => "/something/baz"
         
     | 
| 
       170 
     | 
    
         
            -
                      }
         
     | 
| 
       171 
     | 
    
         
            -
                    }
         
     | 
| 
       172 
     | 
    
         
            -
                  )
         
     | 
| 
       173 
     | 
    
         
            -
             
     | 
| 
       174 
     | 
    
         
            -
                  artefact = JSON.parse(headers[Slimmer::Headers::ARTEFACT_HEADER])
         
     | 
| 
       175 
     | 
    
         
            -
             
     | 
| 
       176 
     | 
    
         
            -
                  assert_equal "Foo", artefact["tags"][0]["title"]
         
     | 
| 
       177 
     | 
    
         
            -
                  assert_equal "section", artefact["tags"][0]["details"]["type"]
         
     | 
| 
       178 
     | 
    
         
            -
                  assert_equal "/something/baz/bar/foo", artefact["tags"][0]["content_with_tag"]["web_url"]
         
     | 
| 
       179 
     | 
    
         
            -
             
     | 
| 
       180 
     | 
    
         
            -
                  assert_equal "Bar", artefact["tags"][0]["parent"]["title"]
         
     | 
| 
       181 
     | 
    
         
            -
                  assert_equal "section", artefact["tags"][0]["parent"]["details"]["type"]
         
     | 
| 
       182 
     | 
    
         
            -
                  assert_equal "/something/baz/bar", artefact["tags"][0]["parent"]["content_with_tag"]["web_url"]
         
     | 
| 
       183 
     | 
    
         
            -
             
     | 
| 
       184 
     | 
    
         
            -
                  assert_equal "Baz", artefact["tags"][0]["parent"]["parent"]["title"]
         
     | 
| 
       185 
     | 
    
         
            -
                  assert_equal "section", artefact["tags"][0]["parent"]["parent"]["details"]["type"]
         
     | 
| 
       186 
     | 
    
         
            -
                  assert_equal "/something/baz", artefact["tags"][0]["parent"]["parent"]["content_with_tag"]["web_url"]
         
     | 
| 
       187 
     | 
    
         
            -
             
     | 
| 
       188 
     | 
    
         
            -
                end
         
     | 
| 
       189 
     | 
    
         
            -
              end
         
     | 
| 
       190 
     | 
    
         
            -
            end
         
     | 
| 
         @@ -31,14 +31,9 @@ module MetadataInserterTest 
     | 
|
| 
       31 
31 
     | 
    
         
             
                def setup
         
     | 
| 
       32 
32 
     | 
    
         
             
                  super
         
     | 
| 
       33 
33 
     | 
    
         | 
| 
       34 
     | 
    
         
            -
                  artefact = artefact_for_slug_in_a_subsection("something", "rhubarb/in-puddings")
         
     | 
| 
       35 
     | 
    
         
            -
                  artefact["details"].merge!(
         
     | 
| 
       36 
     | 
    
         
            -
                    "need_ids" => [100001,100002],
         
     | 
| 
       37 
     | 
    
         
            -
                  )
         
     | 
| 
       38 
34 
     | 
    
         
             
                  headers = {
         
     | 
| 
       39 
35 
     | 
    
         
             
                    Slimmer::Headers::FORMAT_HEADER => "custard",
         
     | 
| 
       40 
36 
     | 
    
         
             
                    Slimmer::Headers::RESULT_COUNT_HEADER => "3",
         
     | 
| 
       41 
     | 
    
         
            -
                    Slimmer::Headers::ARTEFACT_HEADER => artefact.to_json,
         
     | 
| 
       42 
37 
     | 
    
         
             
                    Slimmer::Headers::ORGANISATIONS_HEADER => "<P1><D422>",
         
     | 
| 
       43 
38 
     | 
    
         
             
                    Slimmer::Headers::WORLD_LOCATIONS_HEADER => "<WL3>"
         
     | 
| 
       44 
39 
     | 
    
         
             
                  }
         
     | 
| 
         @@ -46,18 +41,10 @@ module MetadataInserterTest 
     | 
|
| 
       46 
41 
     | 
    
         
             
                  given_response 200, GENERIC_DOCUMENT, headers
         
     | 
| 
       47 
42 
     | 
    
         
             
                end
         
     | 
| 
       48 
43 
     | 
    
         | 
| 
       49 
     | 
    
         
            -
                def test_should_include_section_meta_tag
         
     | 
| 
       50 
     | 
    
         
            -
                  assert_meta_tag "section", "rhubarb"
         
     | 
| 
       51 
     | 
    
         
            -
                end
         
     | 
| 
       52 
     | 
    
         
            -
             
     | 
| 
       53 
44 
     | 
    
         
             
                def test_should_include_format_meta_tag
         
     | 
| 
       54 
45 
     | 
    
         
             
                  assert_meta_tag "format", "custard"
         
     | 
| 
       55 
46 
     | 
    
         
             
                end
         
     | 
| 
       56 
47 
     | 
    
         | 
| 
       57 
     | 
    
         
            -
                def test_should_include_need_ids_meta_tag
         
     | 
| 
       58 
     | 
    
         
            -
                  assert_meta_tag "need-ids", "100001,100002"
         
     | 
| 
       59 
     | 
    
         
            -
                end
         
     | 
| 
       60 
     | 
    
         
            -
             
     | 
| 
       61 
48 
     | 
    
         
             
                def test_should_include_organisations_meta_tag
         
     | 
| 
       62 
49 
     | 
    
         
             
                  assert_meta_tag "analytics:organisations", "<P1><D422>"
         
     | 
| 
       63 
50 
     | 
    
         
             
                end
         
     | 
| 
         @@ -71,28 +58,6 @@ module MetadataInserterTest 
     | 
|
| 
       71 
58 
     | 
    
         
             
                end
         
     | 
| 
       72 
59 
     | 
    
         
             
              end
         
     | 
| 
       73 
60 
     | 
    
         | 
| 
       74 
     | 
    
         
            -
              class WithInvalidAttributes < SlimmerIntegrationTest
         
     | 
| 
       75 
     | 
    
         
            -
                include MetaTagAssertions
         
     | 
| 
       76 
     | 
    
         
            -
             
     | 
| 
       77 
     | 
    
         
            -
                def setup
         
     | 
| 
       78 
     | 
    
         
            -
                  super
         
     | 
| 
       79 
     | 
    
         
            -
                end
         
     | 
| 
       80 
     | 
    
         
            -
             
     | 
| 
       81 
     | 
    
         
            -
                def test_should_skip_passing_need_ids_if_they_are_nil
         
     | 
| 
       82 
     | 
    
         
            -
                  artefact = artefact_for_slug_in_a_subsection("something", "rhubarb/in-puddings")
         
     | 
| 
       83 
     | 
    
         
            -
                  headers = {
         
     | 
| 
       84 
     | 
    
         
            -
                    Slimmer::Headers::ARTEFACT_HEADER => artefact.to_json,
         
     | 
| 
       85 
     | 
    
         
            -
                    Slimmer::Headers::FORMAT_HEADER => "custard"
         
     | 
| 
       86 
     | 
    
         
            -
                  }
         
     | 
| 
       87 
     | 
    
         
            -
                  given_response 200, GENERIC_DOCUMENT, headers
         
     | 
| 
       88 
     | 
    
         
            -
             
     | 
| 
       89 
     | 
    
         
            -
                  refute_meta_tag "need-ids"
         
     | 
| 
       90 
     | 
    
         
            -
                  # the presence of these attributes tests that the nil check worked
         
     | 
| 
       91 
     | 
    
         
            -
                  assert_meta_tag "section", "rhubarb"
         
     | 
| 
       92 
     | 
    
         
            -
                  assert_meta_tag "format", "custard"
         
     | 
| 
       93 
     | 
    
         
            -
                end
         
     | 
| 
       94 
     | 
    
         
            -
              end
         
     | 
| 
       95 
     | 
    
         
            -
             
     | 
| 
       96 
61 
     | 
    
         
             
              class WithoutHeadersTest < SlimmerIntegrationTest
         
     | 
| 
       97 
62 
     | 
    
         
             
                include MetaTagAssertions
         
     | 
| 
       98 
63 
     | 
    
         | 
| 
         @@ -106,10 +71,6 @@ module MetadataInserterTest 
     | 
|
| 
       106 
71 
     | 
    
         
             
                  refute_meta_tag "format"
         
     | 
| 
       107 
72 
     | 
    
         
             
                end
         
     | 
| 
       108 
73 
     | 
    
         | 
| 
       109 
     | 
    
         
            -
                def test_should_omit_need_ID
         
     | 
| 
       110 
     | 
    
         
            -
                  refute_meta_tag "need-ids"
         
     | 
| 
       111 
     | 
    
         
            -
                end
         
     | 
| 
       112 
     | 
    
         
            -
             
     | 
| 
       113 
74 
     | 
    
         
             
                def test_should_omit_organisations
         
     | 
| 
       114 
75 
     | 
    
         
             
                  refute_meta_tag "analytics:organisations"
         
     | 
| 
       115 
76 
     | 
    
         
             
                end
         
     | 
| 
         @@ -122,28 +83,4 @@ module MetadataInserterTest 
     | 
|
| 
       122 
83 
     | 
    
         
             
                  refute_meta_tag "search-result-count"
         
     | 
| 
       123 
84 
     | 
    
         
             
                end
         
     | 
| 
       124 
85 
     | 
    
         
             
              end
         
     | 
| 
       125 
     | 
    
         
            -
             
     | 
| 
       126 
     | 
    
         
            -
              class WithNilHeaderTest < SlimmerIntegrationTest
         
     | 
| 
       127 
     | 
    
         
            -
                include MetaTagAssertions
         
     | 
| 
       128 
     | 
    
         
            -
             
     | 
| 
       129 
     | 
    
         
            -
                def setup
         
     | 
| 
       130 
     | 
    
         
            -
                  super
         
     | 
| 
       131 
     | 
    
         
            -
             
     | 
| 
       132 
     | 
    
         
            -
                  artefact = artefact_for_slug_in_a_subsection("something", "rhubarb/in-puddings")
         
     | 
| 
       133 
     | 
    
         
            -
                  artefact["details"].merge!(
         
     | 
| 
       134 
     | 
    
         
            -
                    "need_ids" => [100001, 100002],
         
     | 
| 
       135 
     | 
    
         
            -
                  )
         
     | 
| 
       136 
     | 
    
         
            -
                  headers = {
         
     | 
| 
       137 
     | 
    
         
            -
                    Slimmer::Headers::RESULT_COUNT_HEADER => "3",
         
     | 
| 
       138 
     | 
    
         
            -
                    Slimmer::Headers::ARTEFACT_HEADER => artefact.to_json,
         
     | 
| 
       139 
     | 
    
         
            -
                    Slimmer::Headers::ORGANISATIONS_HEADER => "<P1><D422>"
         
     | 
| 
       140 
     | 
    
         
            -
                  }
         
     | 
| 
       141 
     | 
    
         
            -
             
     | 
| 
       142 
     | 
    
         
            -
                  given_response 200, GENERIC_DOCUMENT, headers
         
     | 
| 
       143 
     | 
    
         
            -
                end
         
     | 
| 
       144 
     | 
    
         
            -
             
     | 
| 
       145 
     | 
    
         
            -
                def test_should_include_organisation_meta_tag_without_crashing
         
     | 
| 
       146 
     | 
    
         
            -
                  assert_meta_tag "analytics:organisations", "<P1><D422>"
         
     | 
| 
       147 
     | 
    
         
            -
                end
         
     | 
| 
       148 
     | 
    
         
            -
              end
         
     | 
| 
       149 
86 
     | 
    
         
             
            end
         
     |