govuk_navigation_helpers 1.0.0 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: f4176c900f1ecc9f326253506091426c84a04185
4
- data.tar.gz: 1382b484bfbdf27857da344c9eab90ea44f6cecb
3
+ metadata.gz: ae03499e445926565f940d61ac2ca8a9e6566f40
4
+ data.tar.gz: e4b3be57785db7c30e2846cb9b2d410d1b3f4309
5
5
  SHA512:
6
- metadata.gz: 8382fe5f7de451bdba0ca038f1e0a481ede4a19d9e05231178e5c7e2fa166783e11896755ae7c999330760f73c3b5ac0bf6a18b56391f054803d88c467f103a7
7
- data.tar.gz: f8862c700764b6e0fea0cc61a6307b5f2661d255ef99ec350620f4233913b0dde4d83d2f996c53ee814c85825d300fb088bc4c95aa8ad365f78766792098d078
6
+ metadata.gz: 08da4b0086ef29b400da2c05c5b87bbc5219656cefa84fbdf139beefc73e8e150a95ac81c7d4ee08aa412ead50289bff2df652149aa3d8cacb1091d61ce0d5a3
7
+ data.tar.gz: 3dd946e21c66b799ad1119e2a97a8db3d1cefb3d022e7fc04e6b9542d7d05a409f44d2d429815eaeaab70775738ea8e322fa09a713cda3c927aed34be8916a85
data/CHANGELOG.md CHANGED
@@ -1,3 +1,9 @@
1
+ ## 2.0.0
2
+
3
+ * Functionality to generate data for the related items component
4
+ * Breadcrumbs are now returned in a hash so that they can be passed to
5
+ `govuk_components` directly.
6
+
1
7
  ## 1.0.0
2
8
 
3
9
  * Functionality to generate data for the breadcrumb component
data/README.md CHANGED
@@ -36,7 +36,11 @@ end
36
36
  Render the component:
37
37
 
38
38
  ```ruby
39
- <%= render partial: 'govuk_component/breadcrumbs', locals: { breadcrumbs: @navigation.breadcrumbs }
39
+ <%= render partial: 'govuk_component/breadcrumbs', locals: @navigation.breadcrumbs %>
40
+ ```
41
+
42
+ ```ruby
43
+ <%= render partial: 'govuk_component/related_items', locals: @navigation.related_items %>
40
44
  ```
41
45
 
42
46
  ### Running the test suite
@@ -53,4 +57,4 @@ To run a Yard server locally to preview documentation, run:
53
57
 
54
58
  ## Licence
55
59
 
56
- [MIT License](LICENCE.txt)
60
+ [MIT License](LICENCE.txt)
@@ -25,7 +25,7 @@ Gem::Specification.new do |spec|
25
25
  spec.add_development_dependency "govuk-lint", "~> 1.2.1"
26
26
  spec.add_development_dependency "pry-byebug", "~> 3.4"
27
27
  spec.add_development_dependency "yard", "~> 0.8"
28
- spec.add_development_dependency "govuk_schemas", "~> 0.1"
28
+ spec.add_development_dependency "govuk_schemas", "~> 1.0"
29
29
 
30
30
  spec.required_ruby_version = ">= 2.3.1"
31
31
  end
@@ -20,7 +20,9 @@ module GovukNavigationHelpers
20
20
 
21
21
  ordered_parents << { title: "Home", url: "/" }
22
22
 
23
- ordered_parents.reverse
23
+ {
24
+ breadcrumbs: ordered_parents.reverse
25
+ }
24
26
  end
25
27
 
26
28
  private
@@ -0,0 +1,47 @@
1
+ module GovukNavigationHelpers
2
+ # Simple wrapper around a content store representation of a content item. Works
3
+ # for both the main content item and the expanded links in the links hash.
4
+ #
5
+ # @private
6
+ class ContentItem
7
+ attr_reader :content_store_response
8
+
9
+ def initialize(content_store_response)
10
+ @content_store_response = content_store_response
11
+ end
12
+
13
+ def parent
14
+ parent_item = content_store_response.dig("links", "parent", 0)
15
+ return unless parent_item
16
+ ContentItem.new(parent_item)
17
+ end
18
+
19
+ def mainstream_browse_pages
20
+ content_store_response.dig("links", "mainstream_browse_pages").to_a.map do |link|
21
+ ContentItem.new(link)
22
+ end
23
+ end
24
+
25
+ def title
26
+ content_store_response.fetch("title")
27
+ end
28
+
29
+ def base_path
30
+ content_store_response.fetch("base_path")
31
+ end
32
+
33
+ def content_id
34
+ content_store_response.fetch("content_id")
35
+ end
36
+
37
+ def related_links
38
+ content_store_response.dig("links", "ordered_related_items").to_a.map do |link|
39
+ ContentItem.new(link)
40
+ end
41
+ end
42
+
43
+ def external_links
44
+ content_store_response.dig("details", "external_related_links").to_a
45
+ end
46
+ end
47
+ end
@@ -0,0 +1,47 @@
1
+ module GovukNavigationHelpers
2
+ # Take a content item and group the related links according to an algorithm
3
+ # that is intended to display the related links into three groups, depending
4
+ # on how much they have in common with the main content item.
5
+ #
6
+ # @private
7
+ class GroupedRelatedLinks
8
+ attr_reader :content_item
9
+
10
+ def initialize(content_item)
11
+ @content_item = content_item
12
+ end
13
+
14
+ # This will return related items that are tagged to the same mainstream
15
+ # browse page as the main content item.
16
+ def tagged_to_same_mainstream_browse_page
17
+ return [] unless content_item.parent
18
+
19
+ @tagged_to_same_mainstream_browse_page ||= content_item.related_links.select do |related_item|
20
+ related_item.mainstream_browse_pages.map(&:content_id).include?(content_item.parent.content_id)
21
+ end
22
+ end
23
+
24
+ # This will return related items whose parents are tagged to the same mainstream
25
+ # browse page as the main content item's parent.
26
+ def parents_tagged_to_same_mainstream_browse_page
27
+ return [] unless content_item.parent && content_item.parent.parent
28
+
29
+ common_parent_content_ids = tagged_to_same_mainstream_browse_page.map(&:content_id)
30
+
31
+ @parents_tagged_to_same_mainstream_browse_page ||= content_item.related_links.select do |related_item|
32
+ next if common_parent_content_ids.include?(related_item.content_id)
33
+ related_item.mainstream_browse_pages.map(&:parent).map(&:content_id).include?(content_item.parent.parent.content_id)
34
+ end
35
+ end
36
+
37
+ # This will return related links that are tagged to mainstream browse
38
+ # pages unrelated to the main content item.
39
+ def tagged_to_different_mainstream_browse_pages
40
+ all_content_ids = (tagged_to_same_mainstream_browse_page + parents_tagged_to_same_mainstream_browse_page).map(&:content_id)
41
+
42
+ @tagged_to_different_mainstream_browse_pages ||= content_item.related_links.reject do |related_item|
43
+ all_content_ids.include?(related_item.content_id)
44
+ end
45
+ end
46
+ end
47
+ end
@@ -0,0 +1,92 @@
1
+ require 'govuk_navigation_helpers/grouped_related_links'
2
+ require 'govuk_navigation_helpers/content_item'
3
+
4
+ module GovukNavigationHelpers
5
+ # Generate data for the "Related Items" component
6
+ #
7
+ # http://govuk-component-guide.herokuapp.com/components/related_items
8
+ #
9
+ # The procedure to group the links is quite complicated. In short, related links
10
+ # are grouped by how related they are to the current page.
11
+ #
12
+ # The wiki page on related items has more information:
13
+ #
14
+ # https://gov-uk.atlassian.net/wiki/pages/viewpage.action?pageId=99876878
15
+ class RelatedItems
16
+ def initialize(content_item)
17
+ @content_item = ContentItem.new(content_item)
18
+ end
19
+
20
+ def related_items
21
+ {
22
+ sections: [
23
+ tagged_to_same_mainstream_browse_page_section,
24
+ parents_tagged_to_same_mainstream_browse_page_section,
25
+ tagged_to_different_mainstream_browse_pages_section,
26
+ related_external_links_section,
27
+ ].compact
28
+ }
29
+ end
30
+
31
+ private
32
+
33
+ attr_reader :content_item
34
+
35
+ def tagged_to_same_mainstream_browse_page_section
36
+ return unless grouped.tagged_to_same_mainstream_browse_page.any?
37
+
38
+ items = grouped.tagged_to_same_mainstream_browse_page.map do |related_item|
39
+ {
40
+ title: related_item.title,
41
+ url: related_item.base_path
42
+ }
43
+ end
44
+
45
+ { title: content_item.parent.title, url: content_item.parent.base_path, items: items }
46
+ end
47
+
48
+ def parents_tagged_to_same_mainstream_browse_page_section
49
+ return unless grouped.parents_tagged_to_same_mainstream_browse_page.any?
50
+
51
+ items = grouped.parents_tagged_to_same_mainstream_browse_page.map do |related_item|
52
+ {
53
+ title: related_item.title,
54
+ url: related_item.base_path
55
+ }
56
+ end
57
+
58
+ { title: content_item.parent.parent.title, url: content_item.parent.parent.base_path, items: items }
59
+ end
60
+
61
+ def tagged_to_different_mainstream_browse_pages_section
62
+ return unless grouped.tagged_to_different_mainstream_browse_pages.any?
63
+
64
+ items = grouped.tagged_to_different_mainstream_browse_pages.map do |related_item|
65
+ {
66
+ title: related_item.title,
67
+ url: related_item.base_path
68
+ }
69
+ end
70
+
71
+ { title: "Elsewhere on GOV.UK", items: items }
72
+ end
73
+
74
+ def related_external_links_section
75
+ return unless content_item.external_links.any?
76
+
77
+ items = content_item.external_links.map do |h|
78
+ {
79
+ title: h.fetch("title"),
80
+ url: h.fetch("url"),
81
+ rel: "external"
82
+ }
83
+ end
84
+
85
+ { title: "Elsewhere on the web", items: items }
86
+ end
87
+
88
+ def grouped
89
+ @grouped ||= GroupedRelatedLinks.new(content_item)
90
+ end
91
+ end
92
+ end
@@ -1,3 +1,3 @@
1
1
  module GovukNavigationHelpers
2
- VERSION = "1.0.0".freeze
2
+ VERSION = "2.0.0".freeze
3
3
  end
@@ -1,5 +1,6 @@
1
1
  require "govuk_navigation_helpers/version"
2
2
  require "govuk_navigation_helpers/breadcrumbs"
3
+ require "govuk_navigation_helpers/related_items"
3
4
 
4
5
  module GovukNavigationHelpers
5
6
  class NavigationHelper
@@ -9,11 +10,20 @@ module GovukNavigationHelpers
9
10
 
10
11
  # Generate a breacrumb trail
11
12
  #
12
- # @return [Array<Hash>] Each item is a hash containing `:title` and `:url` for one link in the breadcrumb
13
+ # @return [Hash] Payload for the GOV.UK breadcrumbs component
14
+ # @see http://govuk-component-guide.herokuapp.com/components/breadcrumbs
13
15
  def breadcrumbs
14
16
  Breadcrumbs.new(content_item).breadcrumbs
15
17
  end
16
18
 
19
+ # Generate a related items payload
20
+ #
21
+ # @return [Hash] Payload for the GOV.UK Component
22
+ # @see http://govuk-component-guide.herokuapp.com/components/related_items
23
+ def related_items
24
+ RelatedItems.new(content_item).related_items
25
+ end
26
+
17
27
  private
18
28
 
19
29
  attr_reader :content_item
@@ -1,17 +1,11 @@
1
1
  require 'spec_helper'
2
- require 'govuk_navigation_helpers'
3
- require 'govuk_schemas'
4
2
 
5
3
  RSpec.describe GovukNavigationHelpers::Breadcrumbs do
6
4
  describe "#breadcrumbs" do
7
5
  it "can handle any valid content item" do
8
6
  generator = GovukSchemas::RandomExample.for_schema("placeholder", schema_type: "frontend")
9
7
 
10
- 50.times do
11
- expect {
12
- described_class.new(generator.payload).breadcrumbs
13
- }.to_not raise_error
14
- end
8
+ expect { GovukNavigationHelpers::Breadcrumbs.new(generator.payload).breadcrumbs }.to_not raise_error
15
9
  end
16
10
 
17
11
  it "returns the root when parent is not specified" do
@@ -19,7 +13,7 @@ RSpec.describe GovukNavigationHelpers::Breadcrumbs do
19
13
  breadcrumbs = breadcrumbs_for(content_item)
20
14
 
21
15
  expect(breadcrumbs).to eq(
22
- [
16
+ breadcrumbs: [
23
17
  { title: "Home", url: "/" },
24
18
  ]
25
19
  )
@@ -30,7 +24,7 @@ RSpec.describe GovukNavigationHelpers::Breadcrumbs do
30
24
  breadcrumbs = breadcrumbs_for(content_item)
31
25
 
32
26
  expect(breadcrumbs).to eq(
33
- [
27
+ breadcrumbs: [
34
28
  { title: "Home", url: "/" },
35
29
  ]
36
30
  )
@@ -48,7 +42,7 @@ RSpec.describe GovukNavigationHelpers::Breadcrumbs do
48
42
  breadcrumbs = breadcrumbs_for(content_item)
49
43
 
50
44
  expect(breadcrumbs).to eq(
51
- [
45
+ breadcrumbs: [
52
46
  { title: "Home", url: "/" },
53
47
  { title: "A-parent", url: "/a-parent" }
54
48
  ]
@@ -77,7 +71,7 @@ RSpec.describe GovukNavigationHelpers::Breadcrumbs do
77
71
  breadcrumbs = breadcrumbs_for(content_item)
78
72
 
79
73
  expect(breadcrumbs).to eq(
80
- [
74
+ breadcrumbs: [
81
75
  { title: "Home", url: "/" },
82
76
  { title: "Another-parent", url: "/another-parent" },
83
77
  { title: "A-parent", url: "/a-parent" }
@@ -0,0 +1,267 @@
1
+ require "spec_helper"
2
+
3
+ RSpec.describe GovukNavigationHelpers::RelatedItems do
4
+ def payload_for(content_item)
5
+ generator = GovukSchemas::RandomExample.for_schema("placeholder", schema_type: "frontend")
6
+ fully_valid_content_item = generator.merge_and_validate(content_item)
7
+ GovukNavigationHelpers::NavigationHelper.new(fully_valid_content_item).related_items
8
+ end
9
+
10
+ describe "#related_items" do
11
+ it "can handle randomly generated content" do
12
+ generator = GovukSchemas::RandomExample.for_schema("placeholder", schema_type: "frontend")
13
+
14
+ expect { payload_for(generator.payload) }.to_not raise_error
15
+ end
16
+
17
+ it "returns nothing if there are no related links" do
18
+ nothing = payload_for(
19
+ "details" => {
20
+ "external_related_links" => []
21
+ },
22
+ "links" => {
23
+ }
24
+ )
25
+
26
+ expect(nothing).to eql(sections: [])
27
+ end
28
+
29
+ it "returns an elswhere on GOV.UK section for related items with no browse pages in common" do
30
+ payload = payload_for(
31
+ "details" => {
32
+ "external_related_links" => []
33
+ },
34
+ "links" => {
35
+ "ordered_related_items" => [
36
+ {
37
+ "title" => "Foo",
38
+ "content_id" => "fdbf634c-06f5-43ea-915a-53b34b660353",
39
+ "base_path" => "/foo",
40
+ "locale" => "en"
41
+ }
42
+ ]
43
+ }
44
+ )
45
+
46
+ expect(payload).to eql(
47
+ sections: [
48
+ {
49
+ title: "Elsewhere on GOV.UK",
50
+ items: [
51
+ { title: "Foo", url: "/foo" },
52
+ ]
53
+ },
54
+ ]
55
+ )
56
+ end
57
+
58
+ it "returns the external related links" do
59
+ payload = payload_for(
60
+ "details" => {
61
+ "external_related_links" => [
62
+ { "title" => "Foo", "url" => "https://example.org/foo" },
63
+ { "title" => "Bar", "url" => "https://example.org/bar" }
64
+ ]
65
+ },
66
+ "links" => {
67
+ }
68
+ )
69
+
70
+ expect(payload).to eql(
71
+ sections: [
72
+ {
73
+ title: "Elsewhere on the web",
74
+ items: [
75
+ { title: "Foo", url: "https://example.org/foo", rel: "external" },
76
+ { title: "Bar", url: "https://example.org/bar", rel: "external" },
77
+ ]
78
+ },
79
+ ]
80
+ )
81
+ end
82
+
83
+ it "returns a primary section for related items tagged to the same mainstream browse page as the item" do
84
+ payload = payload_for(
85
+ "details" => {
86
+ "external_related_links" => []
87
+ },
88
+ "links" => {
89
+ "parent" => [
90
+ {
91
+ "title" => "Foo's parent",
92
+ "content_id" => "a9c6f24a-92a1-4ead-a776-532d1d99123c",
93
+ "base_path" => "/foo-parent",
94
+ "locale" => "en"
95
+ }
96
+ ],
97
+ "ordered_related_items" => [
98
+ {
99
+ "content_id" => "9effaabe-346d-4ad0-9c1b-baa49bc084d6",
100
+ "title" => "Foo",
101
+ "base_path" => "/bar",
102
+ "locale" => "en",
103
+ "links" => {
104
+ "mainstream_browse_pages" => [
105
+ {
106
+ "title" => "Foo's parent",
107
+ "content_id" => "a9c6f24a-92a1-4ead-a776-532d1d99123c",
108
+ "base_path" => "/foo-parent",
109
+ "locale" => "en"
110
+ }
111
+ ]
112
+ }
113
+ }
114
+ ]
115
+ }
116
+ )
117
+
118
+ expect(payload).to eql(
119
+ sections: [
120
+ {
121
+ title: "Foo's parent",
122
+ url: "/foo-parent",
123
+ items: [
124
+ { title: "Foo", url: "/bar" },
125
+ ]
126
+ },
127
+ ]
128
+ )
129
+ end
130
+
131
+ it "returns a secondary section for related items tagged to the same mainstream browse page as the item's parent" do
132
+ payload = payload_for(
133
+ "details" => {
134
+ "external_related_links" => []
135
+ },
136
+ "links" => {
137
+ "parent" => [
138
+ {
139
+ "title" => "Foo's parent",
140
+ "content_id" => "67c28e19-9934-462c-b174-db5b8e566384",
141
+ "base_path" => "/foo-parent",
142
+ "locale" => "en",
143
+ "links" => {
144
+ "parent" => [
145
+ {
146
+ "title" => "Foo's grandparent",
147
+ "content_id" => "a9c6f24a-92a1-4ead-a776-532d1d99123c",
148
+ "base_path" => "/foo-grand-parent",
149
+ "locale" => "en",
150
+ }
151
+ ]
152
+ }
153
+ }
154
+ ],
155
+ "ordered_related_items" => [
156
+ {
157
+ "content_id" => "9effaabe-346d-4ad0-9c1b-baa49bc084d6",
158
+ "title" => "Foo",
159
+ "base_path" => "/bar",
160
+ "locale" => "en",
161
+ "links" => {
162
+ "mainstream_browse_pages" => [
163
+ {
164
+ "title" => "Some sibling of foo-parent",
165
+ "content_id" => "c34672dc-2ff3-4d28-92fd-bcba382e8a0b",
166
+ "base_path" => "/foo-sibling",
167
+ "locale" => "en",
168
+ "links" => {
169
+ "parent" => [
170
+ {
171
+ "title" => "Foo's grandparent",
172
+ "content_id" => "a9c6f24a-92a1-4ead-a776-532d1d99123c",
173
+ "base_path" => "/foo-grand-parent",
174
+ "locale" => "en",
175
+ }
176
+ ]
177
+ }
178
+ }
179
+ ]
180
+ }
181
+ }
182
+ ]
183
+ }
184
+ )
185
+
186
+ expect(payload).to eql(
187
+ sections: [
188
+ {
189
+ title: "Foo's grandparent",
190
+ url: "/foo-grand-parent",
191
+ items: [
192
+ { title: "Foo", url: "/bar" },
193
+ ]
194
+ },
195
+ ]
196
+ )
197
+ end
198
+
199
+ it "returns only related items in the primary section where they are tagged to the same mainstream browse pages as both the item and the item's parent" do
200
+ payload = payload_for(
201
+ "details" => {
202
+ "external_related_links" => []
203
+ },
204
+ "links" => {
205
+ "parent" => [
206
+ {
207
+ "title" => "Foo's parent",
208
+ "content_id" => "67c28e19-9934-462c-b174-db5b8e566384",
209
+ "base_path" => "/foo-parent",
210
+ "locale" => "en",
211
+ "links" => {
212
+ "parent" => [
213
+ {
214
+ "title" => "Foo's grandparent",
215
+ "content_id" => "a9c6f24a-92a1-4ead-a776-532d1d99123c",
216
+ "base_path" => "/foo-grand-parent",
217
+ "locale" => "en",
218
+ }
219
+ ]
220
+ }
221
+ }
222
+ ],
223
+ "ordered_related_items" => [
224
+ {
225
+ "content_id" => "9effaabe-346d-4ad0-9c1b-baa49bc084d6",
226
+ "title" => "Foo",
227
+ "base_path" => "/bar",
228
+ "locale" => "en",
229
+ "links" => {
230
+ "mainstream_browse_pages" => [
231
+ {
232
+ "title" => "Foo's parent",
233
+ "content_id" => "67c28e19-9934-462c-b174-db5b8e566384",
234
+ "base_path" => "/foo-parent",
235
+ "locale" => "en",
236
+ "links" => {
237
+ "parent" => [
238
+ {
239
+ "title" => "Foo's grandparent",
240
+ "content_id" => "a9c6f24a-92a1-4ead-a776-532d1d99123c",
241
+ "base_path" => "/foo-grand-parent",
242
+ "locale" => "en",
243
+ }
244
+ ]
245
+ }
246
+ }
247
+ ]
248
+ }
249
+ }
250
+ ]
251
+ }
252
+ )
253
+
254
+ expect(payload).to eql(
255
+ sections: [
256
+ {
257
+ title: "Foo's parent",
258
+ url: "/foo-parent",
259
+ items: [
260
+ { title: "Foo", url: "/bar" },
261
+ ]
262
+ },
263
+ ]
264
+ )
265
+ end
266
+ end
267
+ end
data/spec/spec_helper.rb CHANGED
@@ -1,3 +1,6 @@
1
+ require 'govuk_navigation_helpers'
2
+ require 'govuk_schemas'
3
+
1
4
  # This file was generated by the `rspec --init` command. Conventionally, all
2
5
  # specs live under a `spec` directory, which RSpec adds to the `$LOAD_PATH`.
3
6
  # The generated `.rspec` file contains `--require spec_helper` which will cause
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: 1.0.0
4
+ version: 2.0.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: 2016-09-26 00:00:00.000000000 Z
11
+ date: 2016-10-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -114,14 +114,14 @@ dependencies:
114
114
  requirements:
115
115
  - - "~>"
116
116
  - !ruby/object:Gem::Version
117
- version: '0.1'
117
+ version: '1.0'
118
118
  type: :development
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
121
121
  requirements:
122
122
  - - "~>"
123
123
  - !ruby/object:Gem::Version
124
- version: '0.1'
124
+ version: '1.0'
125
125
  description: Gem to transform items from the content-store into payloads for GOV.UK
126
126
  components
127
127
  email:
@@ -142,8 +142,12 @@ files:
142
142
  - jenkins.sh
143
143
  - lib/govuk_navigation_helpers.rb
144
144
  - lib/govuk_navigation_helpers/breadcrumbs.rb
145
+ - lib/govuk_navigation_helpers/content_item.rb
146
+ - lib/govuk_navigation_helpers/grouped_related_links.rb
147
+ - lib/govuk_navigation_helpers/related_items.rb
145
148
  - lib/govuk_navigation_helpers/version.rb
146
149
  - spec/breadcrumbs_spec.rb
150
+ - spec/related_items_spec.rb
147
151
  - spec/spec_helper.rb
148
152
  homepage: https://github.com/alphagov/govuk_navigation_helpers
149
153
  licenses:
@@ -171,4 +175,5 @@ specification_version: 4
171
175
  summary: Gem to transform items from the content-store into payloads for GOV.UK components
172
176
  test_files:
173
177
  - spec/breadcrumbs_spec.rb
178
+ - spec/related_items_spec.rb
174
179
  - spec/spec_helper.rb