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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: bc315992bc95e0ccc4ca7a148a1adc70c3e23b64
4
- data.tar.gz: 70329a7f0bfbfc93770ebc404e9aac21a4a61914
3
+ metadata.gz: a90b969d4918f507faf0a1786349dec54afb1860
4
+ data.tar.gz: a5c670c1434dbe9a9469c980bd9bee9b9199e6c1
5
5
  SHA512:
6
- metadata.gz: 7fb450a6afc7351e5cab8d776e0af36bb712fa88a252cd204875172b6a34af41f5d5a0357b608ef61eac111fcfcc33fe56c9201a9e58161681784dca68f31d83
7
- data.tar.gz: 189c06187364cb4d9b0279b43a8f685ca925c48642ecf07dd0677f1587acabbef62d45a69a7d2efb586c426c51717484dfb41fd53baa6729cb95ed3ff54a57cd
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"
@@ -65,5 +65,9 @@ module GovukNavigationHelpers
65
65
  def external_links
66
66
  content_store_response.dig("details", "external_related_links").to_a
67
67
  end
68
+
69
+ def document_type
70
+ content_store_response.fetch('document_type')
71
+ end
68
72
  end
69
73
  end
@@ -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
 
@@ -1,3 +1,3 @@
1
1
  module GovukNavigationHelpers
2
- VERSION = "6.0.2".freeze
2
+ VERSION = "6.1.0".freeze
3
3
  end
@@ -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("placeholder", schema_type: "frontend")
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.2
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-04-28 00:00:00.000000000 Z
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