govuk_navigation_helpers 6.0.2 → 6.1.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|