govuk_content_models 13.2.1 → 13.3.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.
- data/CHANGELOG.md +4 -0
- data/app/models/tag.rb +10 -6
- data/lib/govuk_content_models/version.rb +1 -1
- data/test/models/tag_test.rb +34 -0
- metadata +3 -3
data/CHANGELOG.md
CHANGED
data/app/models/tag.rb
CHANGED
|
@@ -3,15 +3,17 @@ require 'tag_id_validator'
|
|
|
3
3
|
|
|
4
4
|
class Tag
|
|
5
5
|
include Mongoid::Document
|
|
6
|
-
|
|
7
|
-
field :
|
|
8
|
-
field :
|
|
9
|
-
field :
|
|
6
|
+
|
|
7
|
+
field :tag_id, type: String
|
|
8
|
+
field :title, type: String
|
|
9
|
+
field :tag_type, type: String #TODO: list of accepted types?
|
|
10
|
+
field :description, type: String
|
|
10
11
|
field :short_description, type: String
|
|
11
|
-
|
|
12
|
-
field :
|
|
12
|
+
field :parent_id, type: String
|
|
13
|
+
field :state, type: String, default: 'live'
|
|
13
14
|
|
|
14
15
|
GOVSPEAK_FIELDS = []
|
|
16
|
+
STATES = ['draft', 'live']
|
|
15
17
|
|
|
16
18
|
index :tag_id
|
|
17
19
|
index [ [:tag_id, Mongo::ASCENDING], [:tag_type, Mongo::ASCENDING] ], unique: true
|
|
@@ -22,6 +24,8 @@ class Tag
|
|
|
22
24
|
validates_with TagIdValidator
|
|
23
25
|
validates_with SafeHtml
|
|
24
26
|
|
|
27
|
+
validates :state, inclusion: { in: STATES }
|
|
28
|
+
|
|
25
29
|
class MissingTags < RuntimeError
|
|
26
30
|
attr_reader :tag_ids
|
|
27
31
|
|
data/test/models/tag_test.rb
CHANGED
|
@@ -115,4 +115,38 @@ class TagTest < ActiveSupport::TestCase
|
|
|
115
115
|
test "should validate with TagIdValidator" do
|
|
116
116
|
assert_includes Tag.validators.map(&:class), TagIdValidator
|
|
117
117
|
end
|
|
118
|
+
|
|
119
|
+
context "state" do
|
|
120
|
+
setup do
|
|
121
|
+
@atts = { tag_type: 'section', tag_id: 'test', title: 'Test' }
|
|
122
|
+
end
|
|
123
|
+
|
|
124
|
+
should "be created in live state" do
|
|
125
|
+
tag = Tag.create(@atts.merge(state: 'live'))
|
|
126
|
+
|
|
127
|
+
assert tag.persisted?
|
|
128
|
+
assert_equal 'live', tag.state
|
|
129
|
+
end
|
|
130
|
+
|
|
131
|
+
should "be created in draft state" do
|
|
132
|
+
tag = Tag.create(@atts.merge(state: 'draft'))
|
|
133
|
+
|
|
134
|
+
assert tag.persisted?
|
|
135
|
+
assert_equal 'draft', tag.state
|
|
136
|
+
end
|
|
137
|
+
|
|
138
|
+
should "not be created in another state" do
|
|
139
|
+
tag = Tag.create(@atts.merge(state: 'foo'))
|
|
140
|
+
|
|
141
|
+
assert !tag.valid?
|
|
142
|
+
assert tag.errors.has_key?(:state)
|
|
143
|
+
end
|
|
144
|
+
|
|
145
|
+
should "be created in live state by default" do
|
|
146
|
+
tag = Tag.create(@atts)
|
|
147
|
+
|
|
148
|
+
assert tag.persisted?
|
|
149
|
+
assert_equal 'live', tag.state
|
|
150
|
+
end
|
|
151
|
+
end
|
|
118
152
|
end
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: govuk_content_models
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 13.
|
|
4
|
+
version: 13.3.0
|
|
5
5
|
prerelease:
|
|
6
6
|
platform: ruby
|
|
7
7
|
authors:
|
|
@@ -468,7 +468,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
468
468
|
version: '0'
|
|
469
469
|
segments:
|
|
470
470
|
- 0
|
|
471
|
-
hash:
|
|
471
|
+
hash: 199219386487384018
|
|
472
472
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
473
473
|
none: false
|
|
474
474
|
requirements:
|
|
@@ -477,7 +477,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
477
477
|
version: '0'
|
|
478
478
|
segments:
|
|
479
479
|
- 0
|
|
480
|
-
hash:
|
|
480
|
+
hash: 199219386487384018
|
|
481
481
|
requirements: []
|
|
482
482
|
rubyforge_project:
|
|
483
483
|
rubygems_version: 1.8.23
|