govuk_content_models 34.0.0 → 35.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (54) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +5 -0
  3. data/app/models/artefact.rb +15 -13
  4. data/app/models/business_support/business_size.rb +1 -1
  5. data/app/models/business_support/business_type.rb +1 -1
  6. data/app/models/business_support/location.rb +1 -1
  7. data/app/models/business_support/purpose.rb +1 -1
  8. data/app/models/business_support/sector.rb +1 -1
  9. data/app/models/business_support/stage.rb +1 -1
  10. data/app/models/business_support/support_type.rb +1 -1
  11. data/app/models/business_support_edition.rb +1 -4
  12. data/app/models/curated_list.rb +1 -1
  13. data/app/models/edition.rb +14 -15
  14. data/app/models/licence_edition.rb +5 -2
  15. data/app/models/local_authority.rb +1 -1
  16. data/app/models/overview_dashboard.rb +1 -1
  17. data/app/models/part.rb +2 -2
  18. data/app/models/parted.rb +1 -1
  19. data/app/models/rendered_manual.rb +1 -1
  20. data/app/models/simple_smart_answer_edition/node/option.rb +1 -1
  21. data/app/models/simple_smart_answer_edition/node.rb +1 -1
  22. data/app/models/simple_smart_answer_edition.rb +2 -2
  23. data/app/models/tag.rb +4 -6
  24. data/app/models/travel_advice_edition.rb +18 -17
  25. data/app/models/user.rb +8 -10
  26. data/app/models/workflow.rb +4 -4
  27. data/app/traits/taggable.rb +1 -2
  28. data/config/mongoid.yml +8 -5
  29. data/govuk_content_models.gemspec +12 -10
  30. data/jenkins.sh +3 -0
  31. data/lib/govuk_content_models/action_processors/assign_processor.rb +1 -1
  32. data/lib/govuk_content_models/action_processors/new_version_processor.rb +2 -0
  33. data/lib/govuk_content_models/presentation_toggles.rb +48 -3
  34. data/lib/govuk_content_models/require_all.rb +3 -2
  35. data/lib/govuk_content_models/test_helpers/factories.rb +8 -3
  36. data/lib/govuk_content_models/version.rb +1 -1
  37. data/test/models/artefact_test.rb +9 -9
  38. data/test/models/business_support_edition_test.rb +19 -22
  39. data/test/models/campaign_edition_test.rb +12 -11
  40. data/test/models/completed_transaction_edition_test.rb +79 -0
  41. data/test/models/downtime_test.rb +1 -1
  42. data/test/models/edition_test.rb +23 -9
  43. data/test/models/help_page_edition_test.rb +17 -12
  44. data/test/models/licence_edition_test.rb +9 -8
  45. data/test/models/local_transaction_edition_test.rb +11 -7
  46. data/test/models/parted_test.rb +8 -0
  47. data/test/models/prerendered_entity_tests.rb +4 -4
  48. data/test/models/tag_test.rb +1 -8
  49. data/test/models/travel_advice_edition_test.rb +3 -1
  50. data/test/models/user_test.rb +1 -1
  51. data/test/models/video_edition_test.rb +1 -1
  52. data/test/models/workflow_test.rb +26 -26
  53. data/test/test_helper.rb +4 -1
  54. metadata +66 -24
@@ -156,13 +156,6 @@ class TagTest < ActiveSupport::TestCase
156
156
  assert_equal 'live', tag.state
157
157
  end
158
158
 
159
- should "not mass-assign the state attribute" do
160
- tag = Tag.create(@atts.merge(state: 'live'))
161
- tag.reload
162
-
163
- refute_equal 'live', tag.state
164
- end
165
-
166
159
  should "not be created in another state" do
167
160
  tag = Tag.new(@atts)
168
161
  tag.state = 'foo'
@@ -187,7 +180,7 @@ class TagTest < ActiveSupport::TestCase
187
180
  tag.publish!
188
181
  tag.reload
189
182
 
190
- assert_raises StateMachine::InvalidTransition do
183
+ assert_raises StateMachines::InvalidTransition do
191
184
  tag.publish!
192
185
  end
193
186
  end
@@ -19,7 +19,7 @@ class TravelAdviceEditionTest < ActiveSupport::TestCase
19
19
  ed.change_description = "Some things"
20
20
  ed.synonyms = ["Foo", "Bar"]
21
21
  ed.parts.build(:title => "Part One", :slug => "one")
22
- ed.safely.save!
22
+ ed.save!
23
23
 
24
24
  ed = TravelAdviceEdition.first
25
25
  assert_equal "Travel advice for Aruba", ed.title
@@ -319,6 +319,7 @@ class TravelAdviceEditionTest < ActiveSupport::TestCase
319
319
  @published = FactoryGirl.create(:published_travel_advice_edition, :country_slug => 'aruba',
320
320
  :published_at => 3.days.ago, :change_description => 'Stuff changed')
321
321
  @ed = FactoryGirl.create(:travel_advice_edition, :country_slug => 'aruba')
322
+ @published.reload
322
323
  end
323
324
 
324
325
  should "publish the edition and archive related editions" do
@@ -358,6 +359,7 @@ class TravelAdviceEditionTest < ActiveSupport::TestCase
358
359
  :published_at => 3.days.ago, :change_description => 'Stuff changed')
359
360
  @published.reviewed_at = 2.days.ago
360
361
  @published.save!
362
+ @published.reload
361
363
 
362
364
  Timecop.freeze(1.days.ago) do
363
365
  # this is done to make sure there's a significant difference in time
@@ -64,7 +64,7 @@ class UserTest < ActiveSupport::TestCase
64
64
  test "should find and update the user with oauth params" do
65
65
  attributes = {uid: "1234abcd", name: "Old", email: "old@m.com",
66
66
  permissions: ["everything"]}
67
- User.create!(attributes, without_protection: true)
67
+ User.create!(attributes)
68
68
  auth_hash = {
69
69
  "uid" => "1234abcd",
70
70
  "info" => {
@@ -11,7 +11,7 @@ class VideoEditionTest < ActiveSupport::TestCase
11
11
  v.video_summary = "Coke smoothie"
12
12
  v.body = "Description of video"
13
13
  v.caption_file_id = 'file-to-an-asset-of-the-caption-file'
14
- v.safely.save!
14
+ v.save!
15
15
 
16
16
  v = VideoEdition.first
17
17
  assert_equal "http://www.youtube.com/watch?v=qySFp3qnVmM", v.video_url
@@ -6,8 +6,8 @@ class WorkflowTest < ActiveSupport::TestCase
6
6
  end
7
7
 
8
8
  def template_users
9
- user = User.create(name: "Bob")
10
- other_user = User.create(name: "James")
9
+ user = FactoryGirl.create(:user, name: "Bob")
10
+ other_user = FactoryGirl.create(:user, name: "James")
11
11
  return user, other_user
12
12
  end
13
13
 
@@ -24,8 +24,8 @@ class WorkflowTest < ActiveSupport::TestCase
24
24
  end
25
25
 
26
26
  def publisher_and_guide
27
- user = User.create(name: "Ben")
28
- other_user = User.create(name: "James")
27
+ user = FactoryGirl.create(:user, name: "Ben")
28
+ other_user = FactoryGirl.create(:user, name: "James")
29
29
 
30
30
  guide = user.create_edition(:guide, panopticon_id: @artefact.id, overview: "My Overview", title: "My Title", slug: "my-title")
31
31
  edition = guide
@@ -40,8 +40,8 @@ class WorkflowTest < ActiveSupport::TestCase
40
40
  end
41
41
 
42
42
  def template_user_and_published_transaction
43
- user = User.create(name: "Ben")
44
- other_user = User.create(name: "James")
43
+ user = FactoryGirl.create(:user, name: "Ben")
44
+ other_user = FactoryGirl.create(:user, name: "James")
45
45
 
46
46
  transaction = user.create_edition(:transaction, title: "My title", slug: "my-title", panopticon_id: @artefact.id, need_to_know: "Credit card required")
47
47
  transaction.save
@@ -110,7 +110,7 @@ class WorkflowTest < ActiveSupport::TestCase
110
110
 
111
111
  test "a guide should be marked as having reviewables if requested for review" do
112
112
  guide = template_guide
113
- user = User.create(name:"Ben")
113
+ user = FactoryGirl.create(:user, name: "Ben")
114
114
  refute guide.in_review?
115
115
  assert_nil guide.review_requested_at
116
116
 
@@ -131,8 +131,8 @@ class WorkflowTest < ActiveSupport::TestCase
131
131
  end
132
132
 
133
133
  test "guide workflow" do
134
- user = User.create(name: "Ben")
135
- other_user = User.create(name: "James")
134
+ user = FactoryGirl.create(:user, name: "Ben")
135
+ other_user = FactoryGirl.create(:user, name: "James")
136
136
 
137
137
  guide = user.create_edition(:guide, title: "My Title", slug: "my-title", panopticon_id: @artefact.id)
138
138
  edition = guide
@@ -150,8 +150,8 @@ class WorkflowTest < ActiveSupport::TestCase
150
150
  end
151
151
 
152
152
  test "when fact check has been initiated it can be skipped" do
153
- user = User.create(name: "Ben")
154
- other_user = User.create(name: "James")
153
+ user = FactoryGirl.create(:user, name: "Ben")
154
+ other_user = FactoryGirl.create(:user, name: "James")
155
155
 
156
156
  edition = user.create_edition(:guide, panopticon_id: @artefact.id, overview: "My Overview", title: "My Title", slug: "my-title")
157
157
 
@@ -167,8 +167,8 @@ class WorkflowTest < ActiveSupport::TestCase
167
167
 
168
168
  # until we improve the validation to produce few or no false positives
169
169
  test "when processing fact check, it is not validated" do
170
- user = User.create(name: "Ben")
171
- other_user = User.create(name: "James")
170
+ user = FactoryGirl.create(:user, name: "Ben")
171
+ other_user = FactoryGirl.create(:user, name: "James")
172
172
 
173
173
  guide = user.create_edition(:guide, panopticon_id: FactoryGirl.create(:artefact).id, overview: "My Overview", title: "My Title", slug: "my-title")
174
174
  edition = guide
@@ -182,8 +182,8 @@ class WorkflowTest < ActiveSupport::TestCase
182
182
  end
183
183
 
184
184
  test "fact_check_received can go back to out for fact_check" do
185
- user = User.create(name: "Ben")
186
- other_user = User.create(name: "James")
185
+ user = FactoryGirl.create(:user, name: "Ben")
186
+ other_user = FactoryGirl.create(:user, name: "James")
187
187
 
188
188
  guide = user.create_edition(:guide, panopticon_id: FactoryGirl.create(:artefact).id, overview: "My Overview", title: "My Title", slug: "my-title")
189
189
  edition = guide
@@ -198,8 +198,8 @@ class WorkflowTest < ActiveSupport::TestCase
198
198
  end
199
199
 
200
200
  test "when processing fact check, an edition can request for amendments" do
201
- user = User.create(name: "Ben")
202
- other_user = User.create(name: "James")
201
+ user = FactoryGirl.create(:user, name: "Ben")
202
+ other_user = FactoryGirl.create(:user, name: "James")
203
203
 
204
204
  guide = user.create_edition(:guide, panopticon_id: FactoryGirl.create(:artefact).id, overview: "My Overview", title: "My Title", slug: "my-title")
205
205
  edition = guide
@@ -214,9 +214,9 @@ class WorkflowTest < ActiveSupport::TestCase
214
214
  end
215
215
 
216
216
  test "ready items may require further amendments" do
217
- user = User.create(name: "Ben")
218
- other_user = User.create(name: "James")
219
- another_user = User.create(name: "Fiona")
217
+ user = FactoryGirl.create(:user, name: "Ben")
218
+ other_user = FactoryGirl.create(:user, name: "James")
219
+ FactoryGirl.create(:user, name: "Fiona")
220
220
 
221
221
  guide = user.create_edition(:guide, panopticon_id: FactoryGirl.create(:artefact).id, overview: "My Overview", title: "My Title", slug: "my-title")
222
222
  edition = guide
@@ -234,8 +234,8 @@ class WorkflowTest < ActiveSupport::TestCase
234
234
  end
235
235
 
236
236
  test "check counting reviews" do
237
- user = User.create(name: "Ben")
238
- other_user = User.create(name: "James")
237
+ user = FactoryGirl.create(:user, name: "Ben")
238
+ other_user = FactoryGirl.create(:user, name: "James")
239
239
 
240
240
  guide = user.create_edition(:guide, title: "My Title", slug: "my-title", panopticon_id: @artefact.id)
241
241
  edition = guide
@@ -254,7 +254,7 @@ class WorkflowTest < ActiveSupport::TestCase
254
254
  end
255
255
 
256
256
  test "user should not be able to review a guide they requested review for" do
257
- user = User.create(name: "Ben")
257
+ user = FactoryGirl.create(:user, name: "Ben")
258
258
 
259
259
  guide = user.create_edition(:guide, title: "My Title", slug: "my-title", panopticon_id: @artefact.id)
260
260
  edition = guide
@@ -265,7 +265,7 @@ class WorkflowTest < ActiveSupport::TestCase
265
265
  end
266
266
 
267
267
  test "user should not be able to okay a guide they requested review for" do
268
- user = User.create(name: "Ben")
268
+ user = FactoryGirl.create(:user, name: "Ben")
269
269
 
270
270
  guide = user.create_edition(:guide, title: "My Title", slug: "my-title", panopticon_id: @artefact.id)
271
271
  edition = guide
@@ -368,7 +368,7 @@ class WorkflowTest < ActiveSupport::TestCase
368
368
  end
369
369
 
370
370
  test "important_note returns last non-resolved important note" do
371
- user = User.create(name: "Ben")
371
+ user = FactoryGirl.create(:user, name: "Ben")
372
372
  edition = template_guide
373
373
  user.record_note(edition, 'this is an important note', Action::IMPORTANT_NOTE)
374
374
  request_review(user, edition)
@@ -396,7 +396,7 @@ class WorkflowTest < ActiveSupport::TestCase
396
396
 
397
397
  should "return the new edition" do
398
398
  new_version = @user.new_version(@edition)
399
- assert_include new_version.previous_siblings.to_a, @edition
399
+ assert_includes new_version.previous_siblings.to_a, @edition
400
400
  end
401
401
 
402
402
  context "creating an edition of a different type" do
data/test/test_helper.rb CHANGED
@@ -5,19 +5,22 @@ require "bundler/setup"
5
5
  require "active_support/test_case"
6
6
  require "shoulda/context"
7
7
  require "minitest/autorun"
8
+ require "mocha/mini_test"
8
9
  require "mongoid"
9
10
  require "govuk_content_models/require_all"
10
11
  require "database_cleaner"
11
12
  require "gds_api/test_helpers/panopticon"
12
- require "webmock/test_unit"
13
+ require "webmock/minitest"
13
14
  require "govuk_content_models/test_helpers/factories"
14
15
  require 'govuk_content_models/test_helpers/action_processor_helpers'
15
16
  require "timecop"
17
+ require "byebug"
16
18
 
17
19
  # The models depend on a zone being set, so tests will fail if we don't
18
20
  Time.zone = "London"
19
21
 
20
22
  Mongoid.load! File.expand_path("../../config/mongoid.yml", __FILE__)
23
+ Mongoid::Tasks::Database.create_indexes
21
24
  WebMock.disable_net_connect!
22
25
 
23
26
  DatabaseCleaner.strategy = :truncation
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: govuk_content_models
3
3
  version: !ruby/object:Gem::Version
4
- version: 34.0.0
4
+ version: 35.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Paul Battley
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-04-04 00:00:00.000000000 Z
11
+ date: 2016-04-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bson_ext
@@ -72,30 +72,44 @@ dependencies:
72
72
  requirements:
73
73
  - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: '2.5'
75
+ version: '5.1'
76
76
  type: :runtime
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: '2.5'
82
+ version: '5.1'
83
83
  - !ruby/object:Gem::Dependency
84
- name: plek
84
+ name: state_machines
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - ">="
87
+ - - "~>"
88
88
  - !ruby/object:Gem::Version
89
- version: '0'
89
+ version: '0.4'
90
90
  type: :runtime
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
- - - ">="
94
+ - - "~>"
95
95
  - !ruby/object:Gem::Version
96
- version: '0'
96
+ version: '0.4'
97
+ - !ruby/object:Gem::Dependency
98
+ name: state_machines-mongoid
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: '0.1'
104
+ type: :runtime
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: '0.1'
97
111
  - !ruby/object:Gem::Dependency
98
- name: state_machine
112
+ name: plek
99
113
  requirement: !ruby/object:Gem::Requirement
100
114
  requirements:
101
115
  - - ">="
@@ -114,28 +128,28 @@ dependencies:
114
128
  requirements:
115
129
  - - '='
116
130
  - !ruby/object:Gem::Version
117
- version: 0.7.2
131
+ version: 1.5.1
118
132
  type: :development
119
133
  prerelease: false
120
134
  version_requirements: !ruby/object:Gem::Requirement
121
135
  requirements:
122
136
  - - '='
123
137
  - !ruby/object:Gem::Version
124
- version: 0.7.2
138
+ version: 1.5.1
125
139
  - !ruby/object:Gem::Dependency
126
140
  name: factory_girl
127
141
  requirement: !ruby/object:Gem::Requirement
128
142
  requirements:
129
143
  - - '='
130
144
  - !ruby/object:Gem::Version
131
- version: 3.3.0
145
+ version: 4.5.0
132
146
  type: :development
133
147
  prerelease: false
134
148
  version_requirements: !ruby/object:Gem::Requirement
135
149
  requirements:
136
150
  - - '='
137
151
  - !ruby/object:Gem::Version
138
- version: 3.3.0
152
+ version: 4.5.0
139
153
  - !ruby/object:Gem::Dependency
140
154
  name: gem_publisher
141
155
  requirement: !ruby/object:Gem::Requirement
@@ -156,14 +170,14 @@ dependencies:
156
170
  requirements:
157
171
  - - '='
158
172
  - !ruby/object:Gem::Version
159
- version: 0.13.3
173
+ version: 1.1.0
160
174
  type: :development
161
175
  prerelease: false
162
176
  version_requirements: !ruby/object:Gem::Requirement
163
177
  requirements:
164
178
  - - '='
165
179
  - !ruby/object:Gem::Version
166
- version: 0.13.3
180
+ version: 1.1.0
167
181
  - !ruby/object:Gem::Dependency
168
182
  name: multi_json
169
183
  requirement: !ruby/object:Gem::Requirement
@@ -198,28 +212,28 @@ dependencies:
198
212
  requirements:
199
213
  - - '='
200
214
  - !ruby/object:Gem::Version
201
- version: 1.8.7
215
+ version: 1.22.6
202
216
  type: :development
203
217
  prerelease: false
204
218
  version_requirements: !ruby/object:Gem::Requirement
205
219
  requirements:
206
220
  - - '='
207
221
  - !ruby/object:Gem::Version
208
- version: 1.8.7
222
+ version: 1.22.6
209
223
  - !ruby/object:Gem::Dependency
210
224
  name: shoulda-context
211
225
  requirement: !ruby/object:Gem::Requirement
212
226
  requirements:
213
227
  - - '='
214
228
  - !ruby/object:Gem::Version
215
- version: 1.0.0
229
+ version: 1.2.1
216
230
  type: :development
217
231
  prerelease: false
218
232
  version_requirements: !ruby/object:Gem::Requirement
219
233
  requirements:
220
234
  - - '='
221
235
  - !ruby/object:Gem::Version
222
- version: 1.0.0
236
+ version: 1.2.1
223
237
  - !ruby/object:Gem::Dependency
224
238
  name: timecop
225
239
  requirement: !ruby/object:Gem::Requirement
@@ -234,34 +248,62 @@ dependencies:
234
248
  - - '='
235
249
  - !ruby/object:Gem::Version
236
250
  version: 0.5.9.2
251
+ - !ruby/object:Gem::Dependency
252
+ name: govuk-lint
253
+ requirement: !ruby/object:Gem::Requirement
254
+ requirements:
255
+ - - "~>"
256
+ - !ruby/object:Gem::Version
257
+ version: 0.5.1
258
+ type: :development
259
+ prerelease: false
260
+ version_requirements: !ruby/object:Gem::Requirement
261
+ requirements:
262
+ - - "~>"
263
+ - !ruby/object:Gem::Version
264
+ version: 0.5.1
265
+ - !ruby/object:Gem::Dependency
266
+ name: pry-byebug
267
+ requirement: !ruby/object:Gem::Requirement
268
+ requirements:
269
+ - - ">="
270
+ - !ruby/object:Gem::Version
271
+ version: '0'
272
+ type: :development
273
+ prerelease: false
274
+ version_requirements: !ruby/object:Gem::Requirement
275
+ requirements:
276
+ - - ">="
277
+ - !ruby/object:Gem::Version
278
+ version: '0'
237
279
  - !ruby/object:Gem::Dependency
238
280
  name: rack
239
281
  requirement: !ruby/object:Gem::Requirement
240
282
  requirements:
241
283
  - - "~>"
242
284
  - !ruby/object:Gem::Version
243
- version: 1.4.4
285
+ version: 1.6.4
244
286
  type: :development
245
287
  prerelease: false
246
288
  version_requirements: !ruby/object:Gem::Requirement
247
289
  requirements:
248
290
  - - "~>"
249
291
  - !ruby/object:Gem::Version
250
- version: 1.4.4
292
+ version: 1.6.4
251
293
  - !ruby/object:Gem::Dependency
252
294
  name: rails
253
295
  requirement: !ruby/object:Gem::Requirement
254
296
  requirements:
255
297
  - - '='
256
298
  - !ruby/object:Gem::Version
257
- version: 3.2.17
299
+ version: 4.2.5.1
258
300
  type: :development
259
301
  prerelease: false
260
302
  version_requirements: !ruby/object:Gem::Requirement
261
303
  requirements:
262
304
  - - '='
263
305
  - !ruby/object:Gem::Version
264
- version: 3.2.17
306
+ version: 4.2.5.1
265
307
  description: Shared models for Panopticon and Publisher
266
308
  email:
267
309
  - pbattley@gmail.com