pugin 0.7.1 → 0.8.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.
@@ -1,52 +1,34 @@
1
1
  require 'spec_helper'
2
2
  require 'pugin/feature/bandiera'
3
3
 
4
- describe 'The bandiera client' do
5
-
6
- context 'when checking if Parliament is in dissolution' do
7
- context 'when the feature exists in Bandiera' do
8
-
9
- before :each do
10
- Pugin::Feature::Bandiera.instance_variable_set(:@features, {'show-dissolution' => true})
11
- end
12
-
13
- it "returns the value of show-dissolution in the Bandiera database if it exists" do
14
- expect(Pugin::Feature::Bandiera.dissolution?).to equal(true)
15
- end
16
- end
17
-
18
- context 'when the feature does not exist in Bandiera' do
19
-
20
- before :each do
21
- Pugin::Feature::Bandiera.instance_variable_set(:@features, {})
22
- end
23
-
24
- it "returns false because the feature value is nil" do
25
- expect(Pugin::Feature::Bandiera.dissolution?).to equal(false)
26
- end
27
- end
28
- end
29
-
30
- context 'when checking if you can still register to vote' do
31
- context 'when the feature exists in Bandiera' do
32
-
33
- before :each do
34
- Pugin::Feature::Bandiera.instance_variable_set(:@features, {'show-register' => true})
35
- end
36
-
37
- it "returns the value of show-dissolution in the Bandiera database if it exists" do
38
- expect(Pugin::Feature::Bandiera.register_to_vote?).to equal(true)
39
- end
40
- end
41
-
42
- context 'when the feature does not exist in Bandiera' do
43
-
44
- before :each do
45
- Pugin::Feature::Bandiera.instance_variable_set(:@features, {})
46
- end
47
-
48
- it "returns false because the feature value is nil" do
49
- expect(Pugin::Feature::Bandiera.register_to_vote?).to equal(false)
4
+ describe 'The bandiera client feature set' do
5
+
6
+ method_hash = {
7
+ 'show-dissolution': :dissolution?,
8
+ 'show-register': :register_to_vote?,
9
+ 'show-election': :election?,
10
+ 'show-post-election': :post_election?
11
+ }
12
+
13
+ method_hash.each do |flag_name, method_name|
14
+ context flag_name do
15
+ context 'when the feature exists in Bandiera' do
16
+ before :each do
17
+ Pugin::Feature::Bandiera.instance_variable_set(:@features, {"#{flag_name}" => true})
18
+ end
19
+
20
+ it "returns the value of #{flag_name} in the Bandiera database if it exists" do
21
+ expect(Pugin::Feature::Bandiera.send(method_name)).to equal(true)
22
+ end
23
+ end
24
+ context 'when the feature does not exist in Bandiera' do
25
+ before :each do
26
+ Pugin::Feature::Bandiera.instance_variable_set(:@features, {})
27
+ end
28
+
29
+ it "returns false because the feature value is nil" do
30
+ expect(Pugin::Feature::Bandiera.send(method_name)).to equal(false)
31
+ end
50
32
  end
51
33
  end
52
34
  end
@@ -62,4 +44,4 @@ describe 'The bandiera client' do
62
44
  expect(@features).to equal(nil)
63
45
  end
64
46
  end
65
- end
47
+ end
@@ -51,23 +51,11 @@ describe 'pugin/components/_navigation-letter.html.haml', type: :view do
51
51
  end
52
52
  end
53
53
 
54
- # Test for primary id and letter
55
- context 'and a primary id' do
56
- before :each do
57
- render partial: 'pugin/components/navigation-letter', locals: { route_symbol: :party_members_letter_path, primary_id: @primary_id }
58
- end
59
-
60
- ('a'..'z').each do |letter|
61
- it "renders a navigation link for /parties/1234/a-z/#{letter}" do
62
- expect(rendered).to include("<a data-atoz-see=\"true\" href=\"/parties/1234/members/a-z/#{letter}\">#{letter}</a>")
63
- end
54
+ context 'and with route arguments' do
55
+ before :each do
56
+ render partial: 'pugin/components/navigation-letter', locals: { route_symbol: :house_party_members_letter_path, route_args:[@primary_id,@secondary_id] }
64
57
  end
65
- end
66
58
 
67
- context 'and both a primary and secondary id' do
68
- before :each do
69
- render partial: 'pugin/components/navigation-letter', locals: { route_symbol: :house_party_members_letter_path, primary_id: @primary_id, secondary_id: @secondary_id }
70
- end
71
59
  ('a'..'z').each do |letter|
72
60
  it "renders a navigation link for /houses/1234/parties/5678/members/a-z/#{letter}" do
73
61
  expect(rendered).to include("<a data-atoz-see=\"true\" href=\"/houses/1234/parties/5678/members/a-z/#{letter}\">#{letter}</a>")
@@ -78,7 +66,7 @@ describe 'pugin/components/_navigation-letter.html.haml', type: :view do
78
66
  context "doesn't render links for empty letters" do
79
67
  before :each do
80
68
  @letters = []
81
- render partial: 'pugin/components/navigation-letter', locals: { route_symbol: :party_members_letter_path, primary_id: @primary_id }
69
+ render partial: 'pugin/components/navigation-letter', locals: { route_symbol: :party_members_letter_path, route_args: [@primary_id] }
82
70
  end
83
71
 
84
72
  ('a'..'z').each do |letter|
@@ -8,6 +8,7 @@ describe 'pugin/components/_status.html.haml', type: :view do
8
8
  before :each do
9
9
  allow(Pugin::Feature::Bandiera).to receive(:dissolution?).and_return(false)
10
10
  allow(Pugin::Feature::Bandiera).to receive(:register_to_vote?).and_return(false)
11
+ allow(Pugin::Feature::Bandiera).to receive(:election?).and_return(false)
11
12
  end
12
13
 
13
14
  it 'renders a message not related to the dissolution' do
@@ -85,4 +86,34 @@ DATA
85
86
  end
86
87
  end
87
88
 
89
+ context 'while on election day' do
90
+
91
+ before :each do
92
+ allow(Pugin::Feature::Bandiera).to receive(:dissolution?).and_return(false)
93
+ allow(Pugin::Feature::Bandiera).to receive(:register_to_vote?).and_return(false)
94
+ allow(Pugin::Feature::Bandiera).to receive(:election?).and_return(true)
95
+ end
96
+
97
+ it 'renders a message that reminds the user of the general election date' do
98
+ render partial: 'pugin/components/status', locals: { status: nil }
99
+
100
+ expect(response).to eq(
101
+ <<DATA
102
+ <div class='highlight--status highlight--default'>
103
+ <div class='container'>
104
+ <p>
105
+ This is a test website, so may be inaccurate.
106
+ <a href='http://www.smartsurvey.co.uk/s/ukparliament-beta-website-feedback/' target='_blank' title='website opens in a new window'>Give feedback</a>
107
+ to help improve it.
108
+ Thursday 8 June is election day, find out
109
+ <a href='http://www.parliament.uk/get-involved/elections/voting/' target='_blank' title='website opens in a new window'>how to vote</a>.
110
+ </p>
111
+ </div>
112
+ </div>
113
+ DATA
114
+ )
115
+ end
116
+ end
117
+
118
+
88
119
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pugin
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.1
4
+ version: 0.8.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matt Rayner
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-06-01 00:00:00.000000000 Z
11
+ date: 2017-06-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails