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 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