govuk_navigation_helpers 6.0.2 → 6.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 +4 -4
- data/CHANGELOG.md +9 -0
- data/govuk_navigation_helpers.gemspec +1 -0
- data/lib/govuk_navigation_helpers/content_item.rb +4 -0
- data/lib/govuk_navigation_helpers/related_items.rb +28 -0
- data/lib/govuk_navigation_helpers/version.rb +1 -1
- data/spec/related_items_spec.rb +69 -2
- metadata +16 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a90b969d4918f507faf0a1786349dec54afb1860
|
4
|
+
data.tar.gz: a5c670c1434dbe9a9469c980bd9bee9b9199e6c1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d07df36796dbe825414fcae535d69dad0778fdbd58868a1e653d6de2d3322aea102687b2bf78c4fa20bcbcfef9eb54043907e0bccbb3f8273375db82406b2627
|
7
|
+
data.tar.gz: 02e75793f4ee2884e62de9c819439d50ee286047ea058f5cc7dc10c251b7b3b405b037314f142188cc5c54ccc069a7a9c668d10e7454b093e790601cb0a8bca7
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,12 @@
|
|
1
|
+
## 6.1.0
|
2
|
+
|
3
|
+
* Add "Register to vote" section to related links data. This will only affect
|
4
|
+
completed transactions (apart from register-to-vote) until May 23rd 2017.
|
5
|
+
|
6
|
+
## 6.0.2
|
7
|
+
|
8
|
+
* Bump gds-api-adapters to 43.0.0
|
9
|
+
|
1
10
|
## 6.0.1
|
2
11
|
|
3
12
|
* Remove duplicate related links from search for the new taxonomy sidebar.
|
@@ -19,6 +19,7 @@ Gem::Specification.new do |spec|
|
|
19
19
|
spec.require_paths = ["lib"]
|
20
20
|
|
21
21
|
spec.add_runtime_dependency "gds-api-adapters", ">= 43.0"
|
22
|
+
spec.add_runtime_dependency "activesupport"
|
22
23
|
|
23
24
|
spec.add_development_dependency "bundler", "~> 1.6"
|
24
25
|
spec.add_development_dependency "rake", "~> 10.0"
|
@@ -1,3 +1,6 @@
|
|
1
|
+
require 'time'
|
2
|
+
require 'active_support/core_ext/string/zones'
|
3
|
+
require 'active_support/values/time_zone'
|
1
4
|
require 'govuk_navigation_helpers/grouped_related_links'
|
2
5
|
require 'govuk_navigation_helpers/content_item'
|
3
6
|
|
@@ -20,6 +23,7 @@ module GovukNavigationHelpers
|
|
20
23
|
def related_items
|
21
24
|
{
|
22
25
|
sections: [
|
26
|
+
register_to_vote_section,
|
23
27
|
tagged_to_same_mainstream_browse_page_section,
|
24
28
|
parents_tagged_to_same_mainstream_browse_page_section,
|
25
29
|
tagged_to_different_mainstream_browse_pages_section,
|
@@ -32,6 +36,30 @@ module GovukNavigationHelpers
|
|
32
36
|
|
33
37
|
attr_reader :content_item
|
34
38
|
|
39
|
+
def register_to_vote_section
|
40
|
+
return unless should_show_register_to_vote_section?
|
41
|
+
|
42
|
+
{
|
43
|
+
title: 'Register to vote',
|
44
|
+
description: 'To vote in the General Election on 8 June, you need to apply to register by 11:59pm on 22 May.',
|
45
|
+
url: nil,
|
46
|
+
items: [
|
47
|
+
title: 'Register to vote',
|
48
|
+
url: '/register-to-vote'
|
49
|
+
]
|
50
|
+
}
|
51
|
+
end
|
52
|
+
|
53
|
+
def should_show_register_to_vote_section?
|
54
|
+
content_item.document_type == 'completed_transaction' &&
|
55
|
+
register_to_vote_on_time? &&
|
56
|
+
content_item.base_path !~ /register-to-vote/
|
57
|
+
end
|
58
|
+
|
59
|
+
def register_to_vote_on_time?
|
60
|
+
Time.now < ActiveSupport::TimeZone['London'].parse('2017-05-22T23:59:59')
|
61
|
+
end
|
62
|
+
|
35
63
|
def tagged_to_same_mainstream_browse_page_section
|
36
64
|
return unless grouped.tagged_to_same_mainstream_browse_page.any?
|
37
65
|
|
data/spec/related_items_spec.rb
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
require "spec_helper"
|
2
2
|
|
3
3
|
RSpec.describe GovukNavigationHelpers::RelatedItems do
|
4
|
-
def payload_for(content_item)
|
5
|
-
generator = GovukSchemas::RandomExample.for_schema(
|
4
|
+
def payload_for(content_item, schema = "placeholder")
|
5
|
+
generator = GovukSchemas::RandomExample.for_schema(schema, schema_type: "frontend")
|
6
6
|
fully_valid_content_item = generator.merge_and_validate(content_item)
|
7
7
|
GovukNavigationHelpers::NavigationHelper.new(fully_valid_content_item).related_items
|
8
8
|
end
|
@@ -263,5 +263,72 @@ RSpec.describe GovukNavigationHelpers::RelatedItems do
|
|
263
263
|
]
|
264
264
|
)
|
265
265
|
end
|
266
|
+
|
267
|
+
it 'does not generate the register to vote section for /register-to-vote' do
|
268
|
+
allow(Time).to receive(:now).and_return(Time.parse('2017-05-05'))
|
269
|
+
content_item = {
|
270
|
+
"base_path" => "/register-to-vote",
|
271
|
+
"document_type" => "completed_transaction",
|
272
|
+
"links" => {},
|
273
|
+
"details" => {
|
274
|
+
"external_related_links" => [],
|
275
|
+
"promotion" => {
|
276
|
+
"category" => "organ_donor",
|
277
|
+
"url" => "https://www.organdonation.nhs.uk/"
|
278
|
+
}
|
279
|
+
}
|
280
|
+
}
|
281
|
+
transaction_payload = payload_for(content_item, "completed_transaction")
|
282
|
+
|
283
|
+
expect(transaction_payload).to eql(sections: [])
|
284
|
+
end
|
285
|
+
|
286
|
+
it 'generates the register to vote section for completed transactions with register to vote promotion' do
|
287
|
+
allow(Time).to receive(:now).and_return(Time.parse('2017-05-05'))
|
288
|
+
content_item = {
|
289
|
+
"base_path" => "/done/pay-dvla-fine",
|
290
|
+
"document_type" => "completed_transaction",
|
291
|
+
"links" => {},
|
292
|
+
"details" => {
|
293
|
+
"external_related_links" => [],
|
294
|
+
"promotion" => {
|
295
|
+
"category" => "register_to_vote",
|
296
|
+
"url" => "/register-to-vote"
|
297
|
+
}
|
298
|
+
}
|
299
|
+
}
|
300
|
+
transaction_payload = payload_for(content_item, "completed_transaction")
|
301
|
+
|
302
|
+
expect(transaction_payload).to eql(
|
303
|
+
sections: [{
|
304
|
+
title: "Register to vote",
|
305
|
+
description: "To vote in the General Election on 8 June, you need to apply to register by 11:59pm on 22 May.",
|
306
|
+
url: nil,
|
307
|
+
items: [
|
308
|
+
title: "Register to vote",
|
309
|
+
url: "/register-to-vote"
|
310
|
+
]
|
311
|
+
}]
|
312
|
+
)
|
313
|
+
end
|
314
|
+
|
315
|
+
it 'does not show the register to vote section after May 23rd' do
|
316
|
+
allow(Time).to receive(:now).and_return(Time.parse('2017-05-24'))
|
317
|
+
content_item = {
|
318
|
+
"base_path" => "/done/pay-dvla-fine",
|
319
|
+
"document_type" => "completed_transaction",
|
320
|
+
"links" => {},
|
321
|
+
"details" => {
|
322
|
+
"external_related_links" => [],
|
323
|
+
"promotion" => {
|
324
|
+
"category" => "register_to_vote",
|
325
|
+
"url" => "/register-to-vote"
|
326
|
+
}
|
327
|
+
}
|
328
|
+
}
|
329
|
+
transaction_payload = payload_for(content_item, "completed_transaction")
|
330
|
+
|
331
|
+
expect(transaction_payload).to eql(sections: [])
|
332
|
+
end
|
266
333
|
end
|
267
334
|
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: 6.0
|
4
|
+
version: 6.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-
|
11
|
+
date: 2017-05-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: gds-api-adapters
|
@@ -24,6 +24,20 @@ dependencies:
|
|
24
24
|
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '43.0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: activesupport
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
27
41
|
- !ruby/object:Gem::Dependency
|
28
42
|
name: bundler
|
29
43
|
requirement: !ruby/object:Gem::Requirement
|