govuk_navigation_helpers 5.0.0 → 5.1.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
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA1:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 6ac714eea19839eabbed2cec6ed4b2afdd1203d9
         | 
| 4 | 
            +
              data.tar.gz: 202443d3c79e4e6124f158178a3a988107ac06fa
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 024044fab1cae98132ceebc1256415cec5a89760ee44044b8ee7399751fa85a46d6265b219afedd6a568a6c14d01ca95cd71c3ee5adc976a7741bb201c53a03e
         | 
| 7 | 
            +
              data.tar.gz: bac53adaa9c93b8e8c719171b8c627dc7cc54487a86a373af08b968c97c38d83f6080ac309ecc63a8d943865cd7cbb6df893c5506e25a47492ebbfeef9adb1cf
         | 
    
        data/CHANGELOG.md
    CHANGED
    
    
| @@ -62,6 +62,12 @@ module GovukNavigationHelpers | |
| 62 62 | 
             
                  end
         | 
| 63 63 | 
             
                end
         | 
| 64 64 |  | 
| 65 | 
            +
                def related_overrides
         | 
| 66 | 
            +
                  content_store_response.dig("links", "ordered_related_items_overrides").to_a.map do |link|
         | 
| 67 | 
            +
                    ContentItem.new(link)
         | 
| 68 | 
            +
                  end
         | 
| 69 | 
            +
                end
         | 
| 70 | 
            +
             | 
| 65 71 | 
             
                def external_links
         | 
| 66 72 | 
             
                  content_store_response.dig("details", "external_related_links").to_a
         | 
| 67 73 | 
             
                end
         | 
| @@ -9,7 +9,7 @@ module GovukNavigationHelpers | |
| 9 9 |  | 
| 10 10 | 
             
                def sidebar
         | 
| 11 11 | 
             
                  {
         | 
| 12 | 
            -
                    items: taxons
         | 
| 12 | 
            +
                    items: [taxons, elsewhere_on_govuk, elsewhere_on_the_web].flatten
         | 
| 13 13 | 
             
                  }
         | 
| 14 14 | 
             
                end
         | 
| 15 15 |  | 
| @@ -34,9 +34,46 @@ module GovukNavigationHelpers | |
| 34 34 | 
             
                  end
         | 
| 35 35 | 
             
                end
         | 
| 36 36 |  | 
| 37 | 
            -
                 | 
| 38 | 
            -
             | 
| 39 | 
            -
             | 
| 37 | 
            +
                def elsewhere_on_govuk
         | 
| 38 | 
            +
                  return [] if @content_item.related_overrides.empty?
         | 
| 39 | 
            +
             | 
| 40 | 
            +
                  related_content = @content_item.related_overrides.map do |override|
         | 
| 41 | 
            +
                    {
         | 
| 42 | 
            +
                      title: override.title,
         | 
| 43 | 
            +
                      link: override.base_path
         | 
| 44 | 
            +
                    }
         | 
| 45 | 
            +
                  end
         | 
| 46 | 
            +
             | 
| 47 | 
            +
                  [
         | 
| 48 | 
            +
                    {
         | 
| 49 | 
            +
                      title: "Elsewhere on GOV.UK",
         | 
| 50 | 
            +
                      related_content: related_content
         | 
| 51 | 
            +
                    }
         | 
| 52 | 
            +
                  ]
         | 
| 53 | 
            +
                end
         | 
| 54 | 
            +
             | 
| 55 | 
            +
                def elsewhere_on_the_web
         | 
| 56 | 
            +
                  return [] if @content_item.external_links.empty?
         | 
| 57 | 
            +
             | 
| 58 | 
            +
                  related_content = @content_item.external_links.map do |external_link|
         | 
| 59 | 
            +
                    {
         | 
| 60 | 
            +
                      title: external_link.fetch('title'),
         | 
| 61 | 
            +
                      link: external_link.fetch('url'),
         | 
| 62 | 
            +
                      rel: 'external'
         | 
| 63 | 
            +
                    }
         | 
| 64 | 
            +
                  end
         | 
| 65 | 
            +
             | 
| 66 | 
            +
                  [
         | 
| 67 | 
            +
                    {
         | 
| 68 | 
            +
                      title: "Elsewhere on the web",
         | 
| 69 | 
            +
                      related_content: related_content
         | 
| 70 | 
            +
                    }
         | 
| 71 | 
            +
                  ]
         | 
| 72 | 
            +
                end
         | 
| 73 | 
            +
             | 
| 74 | 
            +
                # This method will fetch content related to @content_item, and tagged to
         | 
| 75 | 
            +
                # taxon. This is a temporary method that uses search to achieve this. This
         | 
| 76 | 
            +
                # behaviour is to be moved into the content store.
         | 
| 40 77 | 
             
                def content_related_to(taxon)
         | 
| 41 78 | 
             
                  statsd.time(:taxonomy_sidebar_search_time) do
         | 
| 42 79 | 
             
                    begin
         | 
| @@ -123,6 +123,48 @@ RSpec.describe GovukNavigationHelpers::TaxonomySidebar do | |
| 123 123 | 
             
                      ]
         | 
| 124 124 | 
             
                    )
         | 
| 125 125 | 
             
                  end
         | 
| 126 | 
            +
             | 
| 127 | 
            +
                  it "includes curated and external links when available" do
         | 
| 128 | 
            +
                    expect(GovukNavigationHelpers.configuration.statsd).to receive(
         | 
| 129 | 
            +
                      :increment
         | 
| 130 | 
            +
                    ).with(
         | 
| 131 | 
            +
                      :taxonomy_sidebar_searches
         | 
| 132 | 
            +
                    ).once
         | 
| 133 | 
            +
             | 
| 134 | 
            +
                    content_item =
         | 
| 135 | 
            +
                      content_item_tagged_to_taxon_with_curated_and_external_links
         | 
| 136 | 
            +
             | 
| 137 | 
            +
                    expect(sidebar_for(content_item)).to eq(
         | 
| 138 | 
            +
                      items: [
         | 
| 139 | 
            +
                        {
         | 
| 140 | 
            +
                          title: "Taxon A",
         | 
| 141 | 
            +
                          url: "/taxon-a",
         | 
| 142 | 
            +
                          description: "The A taxon.",
         | 
| 143 | 
            +
                          related_content: [
         | 
| 144 | 
            +
                            { 'title': 'Related item A', 'link': '/related-item-a', },
         | 
| 145 | 
            +
                            { 'title': 'Related item B', 'link': '/related-item-b', },
         | 
| 146 | 
            +
                            { 'title': 'Related item C', 'link': '/related-item-c', },
         | 
| 147 | 
            +
                          ],
         | 
| 148 | 
            +
                        },
         | 
| 149 | 
            +
                        {
         | 
| 150 | 
            +
                          title: "Elsewhere on GOV.UK",
         | 
| 151 | 
            +
                          related_content: [
         | 
| 152 | 
            +
                            { title: "Curated link 1", link: "/curated-link-1" }
         | 
| 153 | 
            +
                          ]
         | 
| 154 | 
            +
                        },
         | 
| 155 | 
            +
                        {
         | 
| 156 | 
            +
                          title: "Elsewhere on the web",
         | 
| 157 | 
            +
                          related_content: [
         | 
| 158 | 
            +
                            {
         | 
| 159 | 
            +
                              title: "An external link",
         | 
| 160 | 
            +
                              link: "www.external-link.com",
         | 
| 161 | 
            +
                              rel: "external"
         | 
| 162 | 
            +
                            }
         | 
| 163 | 
            +
                          ]
         | 
| 164 | 
            +
                        }
         | 
| 165 | 
            +
                      ]
         | 
| 166 | 
            +
                    )
         | 
| 167 | 
            +
                  end
         | 
| 126 168 | 
             
                end
         | 
| 127 169 |  | 
| 128 170 | 
             
                context 'when Rummager raises an exception' do
         | 
| @@ -184,4 +226,32 @@ RSpec.describe GovukNavigationHelpers::TaxonomySidebar do | |
| 184 226 | 
             
                  },
         | 
| 185 227 | 
             
                }
         | 
| 186 228 | 
             
              end
         | 
| 229 | 
            +
             | 
| 230 | 
            +
              def content_item_tagged_to_taxon_with_curated_and_external_links
         | 
| 231 | 
            +
                {
         | 
| 232 | 
            +
                  "title" => "A piece of content",
         | 
| 233 | 
            +
                  "base_path" => "/a-piece-of-content",
         | 
| 234 | 
            +
                  "links" => {
         | 
| 235 | 
            +
                    "taxons" => [
         | 
| 236 | 
            +
                      {
         | 
| 237 | 
            +
                        "title" => "Taxon A",
         | 
| 238 | 
            +
                        "base_path" => "/taxon-a",
         | 
| 239 | 
            +
                        "content_id" => "taxon-a",
         | 
| 240 | 
            +
                        "description" => "The A taxon.",
         | 
| 241 | 
            +
                      }
         | 
| 242 | 
            +
                    ],
         | 
| 243 | 
            +
                    "ordered_related_items_overrides" => [
         | 
| 244 | 
            +
                      "title" => "Curated link 1",
         | 
| 245 | 
            +
                      "base_path" => "/curated-link-1",
         | 
| 246 | 
            +
                      "content_id" => "curated-link-1",
         | 
| 247 | 
            +
                    ]
         | 
| 248 | 
            +
                  },
         | 
| 249 | 
            +
                  "details" => {
         | 
| 250 | 
            +
                    "external_related_links" => [
         | 
| 251 | 
            +
                      "url" => "www.external-link.com",
         | 
| 252 | 
            +
                      "title" => "An external link"
         | 
| 253 | 
            +
                    ]
         | 
| 254 | 
            +
                  }
         | 
| 255 | 
            +
                }
         | 
| 256 | 
            +
              end
         | 
| 187 257 | 
             
            end
         | 
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: govuk_navigation_helpers
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 5. | 
| 4 | 
            +
              version: 5.1.0
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - GOV.UK Dev
         | 
| 8 8 | 
             
            autorequire: 
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date: 2017-03- | 
| 11 | 
            +
            date: 2017-03-24 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: gds-api-adapters
         |