active_record_survey 0.1.6 → 0.1.7

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: cc0440e0c23ed5d966185f62fe83619c7d50fa01
4
- data.tar.gz: b0e93efb11a6994878ce6c3d5d948043525125a3
3
+ metadata.gz: 07f6faab384d06f3ef40dd8786143e54b36bc195
4
+ data.tar.gz: 47f1f3bc3f2a8319d3978cc94388ebbfdde81f82
5
5
  SHA512:
6
- metadata.gz: 81b0ea583a5d440eddb185547a584dcf471d8f1618a4f8a0e80406882d7a866c5391851e9eb962f28a90f6308bd3c2aba0c30891b700e28a9737acf19fc04f1e
7
- data.tar.gz: 64b747965c5c7bcefe1753f4518f5f4dcbf5279339c459ed1c60a64d854854f77f88ba12410cbd76bb8fd02da05d671fdf1098405405c82384fe19d750eefad8
6
+ metadata.gz: 502f9da2618cd7e84441668135c5d1678f49fc382e729e04e8fd1eeba374a8049049b6ec2a012205d69cff2352865d217e890a3da85fcb26f8bb82c74c4e4ac7
7
+ data.tar.gz: 552fc36dfacb68835174cc6e8f53151b2def44c6f0a789befee1aa49225f5bb3409084e8f88363632620a4849cee5a81c08b25428ec57df85f956f85ca658914
@@ -12,18 +12,18 @@ module ActiveRecordSurvey
12
12
  instance_node.errors[:base] << "NO_PATH"
13
13
  end
14
14
 
15
+ parent_nodes = self.node.node_maps.collect { |j| j.parent }
16
+
15
17
  # Two instance_nodes on the same node for this instance
16
18
  if self.instance.instance_nodes.select { |i|
19
+ # And the two arrays
17
20
  # Two votes share a parent (this means a question has two answers for this instance)
18
- (i.node.node_maps.collect { |j|
19
- j.parent
20
- } & self.node.node_maps.collect { |j|
21
- j.parent
22
- }).length > 0
21
+ (i.node.node_maps.collect { |j| j.parent } & parent_nodes).length > 0
23
22
  }.length > 1
24
23
  instance_node.errors[:base] << "DUPLICATE_PATH"
25
24
  end
26
25
 
26
+ # Validate against the associated node
27
27
  if !self.node.validate_instance_node(self)
28
28
  instance_node.errors[:base] << "INVALID"
29
29
  end
@@ -11,6 +11,14 @@ module ActiveRecordSurvey
11
11
  instance_node.value.to_i <= self.max_rank
12
12
  end
13
13
 
14
+ # Rank answers are considered answered if they have a value of greater than "0"
15
+ def is_answered_for_instance?(instance)
16
+ if instance_node = self.instance_node_for_instance(instance)
17
+ # Answered if > 0
18
+ instance_node.value.to_i > 0
19
+ end
20
+ end
21
+
14
22
  protected
15
23
 
16
24
  # Calculate the number of Rank nodes above this one
@@ -7,5 +7,15 @@ module ActiveRecordSurvey
7
7
  super &&
8
8
  (instance_node.value.to_s.empty? || !instance_node.value.to_s.match(/^(\d+(\.\d+)?)$/).nil?)
9
9
  end
10
+
11
+ # Scale answers are considered answered if they have a value of greater than "0"
12
+ def is_answered_for_instance?(instance)
13
+ if instance_node = self.instance_node_for_instance(instance)
14
+ # Answered if not empty and > 0
15
+ !instance_node.value.to_s.empty? && instance_node.value.to_i >= 0
16
+ else
17
+ false
18
+ end
19
+ end
10
20
  end
11
21
  end
@@ -1,5 +1,12 @@
1
1
  module ActiveRecordSurvey
2
2
  # Text answers are... text answers
3
3
  class Node::Answer::Text < Node::Answer
4
+ # Text answers are considered answered if they have text entered
5
+ def is_answered_for_instance?(instance)
6
+ if instance_node = self.instance_node_for_instance(instance)
7
+ # Answered if has text
8
+ instance_node.value.to_s.strip.length > 0
9
+ end
10
+ end
4
11
  end
5
12
  end
@@ -32,12 +32,13 @@ module ActiveRecordSurvey
32
32
 
33
33
  # Run all validations applied to this node
34
34
  def validate_instance_node(instance_node)
35
- # UGH - so bsaically this validation doesn't know about the non-saved validation..
36
- #puts "Valdating #{self.id} - #{self.text} - total validations are - #{self.node_validations(true).length}"
35
+ # Basically this cache is messed up? Why? TODO.
36
+ # Reloading in the spec seems to fix this... but... this could be a booby trap for others
37
+ #self.node_validations(true)
38
+
37
39
  !self.node_validations.collect { |node_validation|
38
40
  node_validation.validate_instance_node(instance_node, self)
39
- }.include?(false) &&
40
- !self.node_maps.collect { |node_map|
41
+ }.include?(false) && !self.node_maps.collect { |node_map|
41
42
  if node_map.parent
42
43
  node_map.parent.node.validate_instance_node(instance_node)
43
44
  # Hit top node
@@ -3,10 +3,7 @@ module ActiveRecordSurvey
3
3
  class NodeValidation::MaximumAnswer < NodeValidation
4
4
  # Validate the instance_node to ensure a maximum number of answers are made
5
5
  def validate_instance_node(instance_node, question_node = nil)
6
- #puts "-------------------------------------------"
7
- #puts "runnin min answer validation"
8
-
9
- # Only makes sense for questions to have minimum answers
6
+ # Only makes sense for questions to have maximum answers
10
7
  if !question_node.class.ancestors.include?(::ActiveRecordSurvey::Node::Question)
11
8
  return false
12
9
  end
@@ -3,9 +3,6 @@ module ActiveRecordSurvey
3
3
  class NodeValidation::MinimumAnswer < NodeValidation
4
4
  # Validate the instance_node to ensure a minimum number of answers are made
5
5
  def validate_instance_node(instance_node, question_node = nil)
6
- #puts "-------------------------------------------"
7
- #puts "runnin min answer validation"
8
-
9
6
  # Only makes sense for questions to have minimum answers
10
7
  if !question_node.class.ancestors.include?(::ActiveRecordSurvey::Node::Question)
11
8
  return false
@@ -8,9 +8,10 @@ module ActiveRecordSurvey
8
8
  def validate_instance_node(instance_node)
9
9
  true
10
10
  end
11
-
11
+
12
+ # By default everything is valid! WOOO!
12
13
  def validate_node(instance_node, node)
13
- #code
14
+ true
14
15
  end
15
16
  end
16
17
  end
@@ -1,3 +1,3 @@
1
1
  module ActiveRecordSurvey
2
- VERSION = "0.1.6"
2
+ VERSION = "0.1.7"
3
3
  end
@@ -1,6 +1,6 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe ActiveRecordSurvey::Node::Answer::Boolean, :focus => true do
3
+ describe ActiveRecordSurvey::Node::Answer::Boolean, :boolean_spec => true do
4
4
  describe 'a boolean survey is' do
5
5
  before(:all) do
6
6
  @survey = ActiveRecordSurvey::Survey.new
@@ -18,15 +18,6 @@ describe ActiveRecordSurvey::Node::Answer::Boolean, :focus => true do
18
18
  nodes = @survey.build_question(@q1_a4, [], nodes[0])
19
19
  nodes = @survey.build_question(@q1_a5, [], nodes[0])
20
20
 
21
- @q1.node_validations << ActiveRecordSurvey::NodeValidation::MinimumAnswer.new(
22
- :node => @q1,
23
- :value => 1 # min 1 of the 3 answers must be "answered"
24
- )
25
- @q1.node_validations << ActiveRecordSurvey::NodeValidation::MaximumAnswer.new(
26
- :node => @q1,
27
- :value => 3 # max 2 of the 3 answers must be "answered"
28
- )
29
-
30
21
  @survey.save
31
22
  end
32
23
 
@@ -109,123 +100,142 @@ describe ActiveRecordSurvey::Node::Answer::Boolean, :focus => true do
109
100
  end
110
101
  end
111
102
 
112
- describe ActiveRecordSurvey::NodeValidation::MinimumAnswer do
113
- describe 'valid when' do
114
- it 'has a value greater than the minimum' do
115
- instance = ActiveRecordSurvey::Instance.new(:survey => @survey)
116
- instance.instance_nodes.build(
117
- :instance => instance,
118
- :node => @q1_a1,
119
- :value => 1,
120
- )
121
- instance.instance_nodes.build(
122
- :instance => instance,
123
- :node => @q1_a2,
124
- :value => 0,
125
- )
126
- instance.instance_nodes.build(
127
- :instance => instance,
128
- :node => @q1_a3,
129
- :value => 1,
130
- )
131
- instance.save
132
-
133
- expect(instance.valid?).to be(true)
134
- end
135
- end
103
+ describe ActiveRecordSurvey::NodeValidation do
104
+ before(:all) do
105
+ @q1.node_validations.build(
106
+ :type => 'ActiveRecordSurvey::NodeValidation::MinimumAnswer',
107
+ :node => @q1,
108
+ :value => 1 # min 1 of the 3 answers must be "answered"
109
+ )
110
+ @q1.node_validations.build(
111
+ :type => 'ActiveRecordSurvey::NodeValidation::MaximumAnswer',
112
+ :node => @q1,
113
+ :value => 3 # max 2 of the 3 answers must be "answered"
114
+ )
115
+ @q1.save
136
116
 
137
- describe 'invalid when' do
138
- it 'has a value less than the minimum' do
139
- instance = ActiveRecordSurvey::Instance.new(:survey => @survey)
140
- instance.instance_nodes.build(
141
- :instance => instance,
142
- :node => @q1_a1,
143
- :value => 0,
144
- )
145
- instance.instance_nodes.build(
146
- :instance => instance,
147
- :node => @q1_a2,
148
- :value => 0,
149
- )
150
- instance.instance_nodes.build(
151
- :instance => instance,
152
- :node => @q1_a3,
153
- :value => 0,
154
- )
155
- instance.save
156
-
157
- expect(instance.valid?).to be(false)
158
- end
117
+ # Weird caching is happening
118
+ @q1_a1.reload
159
119
  end
160
- end
161
120
 
121
+ describe ActiveRecordSurvey::NodeValidation::MinimumAnswer do
122
+ describe 'valid when' do
123
+ it 'has a value greater than the minimum' do
124
+ instance = ActiveRecordSurvey::Instance.new(:survey => @survey)
125
+ instance.instance_nodes.build(
126
+ :instance => instance,
127
+ :node => @q1_a1,
128
+ :value => 1,
129
+ )
130
+ instance.instance_nodes.build(
131
+ :instance => instance,
132
+ :node => @q1_a2,
133
+ :value => 0,
134
+ )
135
+ instance.instance_nodes.build(
136
+ :instance => instance,
137
+ :node => @q1_a3,
138
+ :value => 1,
139
+ )
140
+ instance.save
141
+
142
+ expect(instance.valid?).to be(true)
143
+ end
144
+ end
162
145
 
163
- describe ActiveRecordSurvey::NodeValidation::MaximumAnswer do
164
- describe 'valid when' do
165
- it 'has a value less than the maximum' do
166
- instance = ActiveRecordSurvey::Instance.new(:survey => @survey)
167
- instance.instance_nodes.build(
168
- :instance => instance,
169
- :node => @q1_a1,
170
- :value => 1,
171
- )
172
- instance.instance_nodes.build(
173
- :instance => instance,
174
- :node => @q1_a2,
175
- :value => 0,
176
- )
177
- instance.instance_nodes.build(
178
- :instance => instance,
179
- :node => @q1_a3,
180
- :value => 1,
181
- )
182
- instance.instance_nodes.build(
183
- :instance => instance,
184
- :node => @q1_a4,
185
- :value => 1,
186
- )
187
- instance.instance_nodes.build(
188
- :instance => instance,
189
- :node => @q1_a5,
190
- :value => 0,
191
- )
192
- instance.save
193
-
194
- expect(instance.valid?).to be(true)
146
+ describe 'invalid when' do
147
+ it 'has a value less than the minimum' do
148
+ @q1.node_validations(true)
149
+ instance = ActiveRecordSurvey::Instance.new(:survey => @survey)
150
+ instance.instance_nodes.build(
151
+ :instance => instance,
152
+ :node => @q1_a1,
153
+ :value => 0,
154
+ )
155
+ instance.instance_nodes.build(
156
+ :instance => instance,
157
+ :node => @q1_a2,
158
+ :value => 0,
159
+ )
160
+ instance.instance_nodes.build(
161
+ :instance => instance,
162
+ :node => @q1_a3,
163
+ :value => 0,
164
+ )
165
+ instance.save
166
+
167
+ expect(instance.valid?).to be(false)
168
+ end
195
169
  end
196
170
  end
197
171
 
198
- describe 'invalid when' do
199
- it 'has a value greater than the maximum' do
200
- instance = ActiveRecordSurvey::Instance.new(:survey => @survey)
201
- instance.instance_nodes.build(
202
- :instance => instance,
203
- :node => @q1_a1,
204
- :value => 1,
205
- )
206
- instance.instance_nodes.build(
207
- :instance => instance,
208
- :node => @q1_a2,
209
- :value => 1,
210
- )
211
- instance.instance_nodes.build(
212
- :instance => instance,
213
- :node => @q1_a3,
214
- :value => 1,
215
- )
216
- instance.instance_nodes.build(
217
- :instance => instance,
218
- :node => @q1_a4,
219
- :value => 1,
220
- )
221
- instance.instance_nodes.build(
222
- :instance => instance,
223
- :node => @q1_a5,
224
- :value => 1,
225
- )
226
- instance.save
227
-
228
- expect(instance.valid?).to be(false)
172
+ describe ActiveRecordSurvey::NodeValidation::MaximumAnswer do
173
+ describe 'valid when' do
174
+ it 'has a value less than the maximum' do
175
+ instance = ActiveRecordSurvey::Instance.new(:survey => @survey)
176
+ instance.instance_nodes.build(
177
+ :instance => instance,
178
+ :node => @q1_a1,
179
+ :value => 1,
180
+ )
181
+ instance.instance_nodes.build(
182
+ :instance => instance,
183
+ :node => @q1_a2,
184
+ :value => 0,
185
+ )
186
+ instance.instance_nodes.build(
187
+ :instance => instance,
188
+ :node => @q1_a3,
189
+ :value => 1,
190
+ )
191
+ instance.instance_nodes.build(
192
+ :instance => instance,
193
+ :node => @q1_a4,
194
+ :value => 1,
195
+ )
196
+ instance.instance_nodes.build(
197
+ :instance => instance,
198
+ :node => @q1_a5,
199
+ :value => 0,
200
+ )
201
+ instance.save
202
+
203
+ expect(instance.valid?).to be(true)
204
+ end
205
+ end
206
+
207
+ describe 'invalid when' do
208
+ it 'has a value greater than the maximum' do
209
+ instance = ActiveRecordSurvey::Instance.new(:survey => @survey)
210
+ instance.instance_nodes.build(
211
+ :instance => instance,
212
+ :node => @q1_a1,
213
+ :value => 1,
214
+ )
215
+ instance.instance_nodes.build(
216
+ :instance => instance,
217
+ :node => @q1_a2,
218
+ :value => 1,
219
+ )
220
+ instance.instance_nodes.build(
221
+ :instance => instance,
222
+ :node => @q1_a3,
223
+ :value => 1,
224
+ )
225
+ instance.instance_nodes.build(
226
+ :instance => instance,
227
+ :node => @q1_a4,
228
+ :value => 1,
229
+ )
230
+ instance.instance_nodes.build(
231
+ :instance => instance,
232
+ :node => @q1_a5,
233
+ :value => 1,
234
+ )
235
+ instance.save
236
+
237
+ expect(instance.valid?).to be(false)
238
+ end
229
239
  end
230
240
  end
231
241
  end
@@ -1,6 +1,6 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe ActiveRecordSurvey::Node::Answer::Rank do
3
+ describe ActiveRecordSurvey::Node::Answer::Rank, :rank_spec => true do
4
4
  describe 'survey is' do
5
5
  before(:all) do
6
6
  @survey = ActiveRecordSurvey::Survey.new
@@ -217,5 +217,129 @@ describe ActiveRecordSurvey::Node::Answer::Rank do
217
217
  expect(instance.valid?).to be(false)
218
218
  end
219
219
  end
220
+
221
+ describe ActiveRecordSurvey::NodeValidation do
222
+ before(:all) do
223
+ @q1.node_validations << ActiveRecordSurvey::NodeValidation::MinimumAnswer.new(
224
+ :node => @q1,
225
+ :value => 2 # min 1 of the 3 answers must be "answered"
226
+ )
227
+ @q1.node_validations << ActiveRecordSurvey::NodeValidation::MaximumAnswer.new(
228
+ :node => @q1,
229
+ :value => 3 # max 2 of the 3 answers must be "answered"
230
+ )
231
+
232
+ # Weird caching is happening
233
+ @q1_a1.reload
234
+ end
235
+
236
+ describe ActiveRecordSurvey::NodeValidation::MinimumAnswer do
237
+ describe 'valid when' do
238
+ it 'has a value greater than the minimum' do
239
+ instance = ActiveRecordSurvey::Instance.new(:survey => @survey)
240
+ instance.instance_nodes.build(
241
+ :instance => instance,
242
+ :node => @q1_a1,
243
+ :value => 1,
244
+ )
245
+ instance.instance_nodes.build(
246
+ :instance => instance,
247
+ :node => @q1_a2,
248
+ :value => 2,
249
+ )
250
+ instance.instance_nodes.build(
251
+ :instance => instance,
252
+ :node => @q1_a3,
253
+ :value => 3,
254
+ )
255
+ instance.save
256
+
257
+ expect(instance.valid?).to be(true)
258
+ end
259
+ end
260
+
261
+ describe 'invalid when' do
262
+ it 'has a value less than the minimum' do
263
+ instance = ActiveRecordSurvey::Instance.new(:survey => @survey)
264
+ instance.instance_nodes.build(
265
+ :instance => instance,
266
+ :node => @q1_a1,
267
+ :value => 1,
268
+ )
269
+ instance.save
270
+
271
+ expect(instance.valid?).to be(false)
272
+ end
273
+ end
274
+ end
275
+
276
+ describe ActiveRecordSurvey::NodeValidation::MaximumAnswer do
277
+ describe 'valid when' do
278
+ it 'has a value less than the maximum' do
279
+ instance = ActiveRecordSurvey::Instance.new(:survey => @survey)
280
+ instance.instance_nodes.build(
281
+ :instance => instance,
282
+ :node => @q1_a1,
283
+ :value => 1,
284
+ )
285
+ instance.instance_nodes.build(
286
+ :instance => instance,
287
+ :node => @q1_a2,
288
+ :value => 2,
289
+ )
290
+ instance.instance_nodes.build(
291
+ :instance => instance,
292
+ :node => @q1_a3,
293
+ )
294
+ instance.instance_nodes.build(
295
+ :instance => instance,
296
+ :node => @q1_a4,
297
+ )
298
+ instance.instance_nodes.build(
299
+ :instance => instance,
300
+ :node => @q1_a5,
301
+ :value => 3,
302
+ )
303
+ instance.save
304
+
305
+ expect(instance.valid?).to be(true)
306
+ end
307
+ end
308
+
309
+ describe 'invalid when' do
310
+ it 'has a value greater than the maximum' do
311
+ instance = ActiveRecordSurvey::Instance.new(:survey => @survey)
312
+ instance.instance_nodes.build(
313
+ :instance => instance,
314
+ :node => @q1_a1,
315
+ :value => 1,
316
+ )
317
+ instance.instance_nodes.build(
318
+ :instance => instance,
319
+ :node => @q1_a2,
320
+ :value => 2,
321
+ )
322
+ instance.instance_nodes.build(
323
+ :instance => instance,
324
+ :node => @q1_a3,
325
+ :value => 3,
326
+ )
327
+ instance.instance_nodes.build(
328
+ :instance => instance,
329
+ :node => @q1_a4,
330
+ :value => 4,
331
+ )
332
+ instance.instance_nodes.build(
333
+ :instance => instance,
334
+ :node => @q1_a5,
335
+ :value => 5,
336
+ )
337
+ instance.save
338
+
339
+ expect(instance.valid?).to be(false)
340
+ end
341
+ end
342
+ end
343
+ end
220
344
  end
221
345
  end
@@ -1,6 +1,6 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe ActiveRecordSurvey::Node::Answer::Scale do
3
+ describe ActiveRecordSurvey::Node::Answer::Scale, :scale_spec => true do
4
4
  describe 'survey is' do
5
5
  before(:all) do
6
6
  @survey = ActiveRecordSurvey::Survey.new
@@ -80,78 +80,176 @@ describe ActiveRecordSurvey::Node::Answer::Scale do
80
80
  end
81
81
  end
82
82
 
83
- describe ActiveRecordSurvey::NodeValidation::MinimumValue do
84
- describe 'valid when' do
85
- it 'has a value greater than the minimum' do
86
- @q1_a1.node_validations << ActiveRecordSurvey::NodeValidation::MinimumValue.new(
87
- :node => @q1_a1,
88
- :value => 4
89
- )
90
- instance = ActiveRecordSurvey::Instance.new(:survey => @survey)
91
- instance.instance_nodes.build(
92
- :instance => instance,
93
- :node => @q1_a1,
94
- :value => 5,
83
+ describe ActiveRecordSurvey::NodeValidation do
84
+ describe ActiveRecordSurvey::NodeValidation::MinimumAnswer do
85
+ before(:all) do
86
+ @q1.node_validations << ActiveRecordSurvey::NodeValidation::MinimumAnswer.new(
87
+ :node => @q1,
88
+ :value => 1
95
89
  )
96
- instance.save
90
+
91
+ # Weird caching is happening
92
+ @q1_a1.reload
93
+ end
94
+
95
+ describe 'valid when' do
96
+ it 'has a value greater than the minimum' do
97
+ instance = ActiveRecordSurvey::Instance.new(:survey => @survey)
98
+ instance.instance_nodes.build(
99
+ :instance => instance,
100
+ :node => @q1_a1,
101
+ :value => 5,
102
+ )
103
+ instance.save
104
+
105
+ expect(instance.valid?).to be(true)
106
+ end
107
+ end
108
+
109
+ describe 'invalid when' do
110
+ it 'has a value less than the minimum' do
111
+ instance = ActiveRecordSurvey::Instance.new(:survey => @survey)
112
+ instance.instance_nodes.build(
113
+ :instance => instance,
114
+ :node => @q1_a1,
115
+ )
116
+ instance.save
97
117
 
98
- expect(instance.valid?).to be(true)
118
+ expect(instance.valid?).to be(false)
119
+ end
99
120
  end
100
121
  end
101
122
 
102
- describe 'invalid when' do
103
- it 'has a value less than the minimum' do
104
- @q1_a1.node_validations << ActiveRecordSurvey::NodeValidation::MinimumValue.new(
105
- :node => @q1_a1,
106
- :value => 6
123
+ describe ActiveRecordSurvey::NodeValidation::MaximumAnswer do
124
+ before(:all) do
125
+ @q1.node_validations << ActiveRecordSurvey::NodeValidation::MaximumAnswer.new(
126
+ :node => @q1,
127
+ :value => 2
107
128
  )
108
- instance = ActiveRecordSurvey::Instance.new(:survey => @survey)
109
- instance.instance_nodes.build(
110
- :instance => instance,
111
- :node => @q1_a1,
112
- :value => 5,
113
- )
114
- instance.save
115
129
 
116
- expect(instance.valid?).to be(false)
130
+ # Weird caching is happening
131
+ @q1_a1.reload
132
+ end
133
+
134
+ describe 'valid when' do
135
+ it 'has a value less than the maximum' do
136
+ instance = ActiveRecordSurvey::Instance.new(:survey => @survey)
137
+ instance.instance_nodes.build(
138
+ :instance => instance,
139
+ :node => @q1_a1,
140
+ :value => 8,
141
+ )
142
+ instance.instance_nodes.build(
143
+ :instance => instance,
144
+ :node => @q1_a2,
145
+ :value => 9,
146
+ )
147
+ instance.instance_nodes.build(
148
+ :instance => instance,
149
+ :node => @q1_a3,
150
+ )
151
+ instance.save
152
+
153
+ expect(instance.valid?).to be(true)
154
+ end
155
+ end
156
+
157
+ describe 'invalid when' do
158
+ it 'has a value greater than the maximum' do
159
+ instance = ActiveRecordSurvey::Instance.new(:survey => @survey)
160
+ instance.instance_nodes.build(
161
+ :instance => instance,
162
+ :node => @q1_a1,
163
+ :value => 8,
164
+ )
165
+ instance.instance_nodes.build(
166
+ :instance => instance,
167
+ :node => @q1_a2,
168
+ :value => 9,
169
+ )
170
+ instance.instance_nodes.build(
171
+ :instance => instance,
172
+ :node => @q1_a3,
173
+ :value => 10,
174
+ )
175
+ instance.save
176
+
177
+ expect(instance.valid?).to be(false)
178
+ end
117
179
  end
118
180
  end
119
- end
120
181
 
121
- describe ActiveRecordSurvey::NodeValidation::MaximumValue do
122
- describe 'valid when' do
123
- it 'has a value less than the maximum' do
124
- @q1_a1.node_validations << ActiveRecordSurvey::NodeValidation::MaximumValue.new(
125
- :node => @q1_a1,
126
- :value => 15
127
- )
128
- instance = ActiveRecordSurvey::Instance.new(:survey => @survey)
129
- instance.instance_nodes.build(
130
- :instance => instance,
182
+ describe ActiveRecordSurvey::NodeValidation::MinimumValue do
183
+ before(:all) do
184
+ @q1_a1.node_validations << ActiveRecordSurvey::NodeValidation::MinimumValue.new(
131
185
  :node => @q1_a1,
132
- :value => 8,
186
+ :value => 4
133
187
  )
134
- instance.save
188
+ end
135
189
 
136
- expect(instance.valid?).to be(true)
190
+ describe 'valid when' do
191
+ it 'has a value greater than the minimum' do
192
+ instance = ActiveRecordSurvey::Instance.new(:survey => @survey)
193
+ instance.instance_nodes.build(
194
+ :instance => instance,
195
+ :node => @q1_a1,
196
+ :value => 5,
197
+ )
198
+ instance.save
199
+
200
+ expect(instance.valid?).to be(true)
201
+ end
202
+ end
203
+
204
+ describe 'invalid when' do
205
+ it 'has a value less than the minimum' do
206
+ instance = ActiveRecordSurvey::Instance.new(:survey => @survey)
207
+ instance.instance_nodes.build(
208
+ :instance => instance,
209
+ :node => @q1_a1,
210
+ :value => 3,
211
+ )
212
+ instance.save
213
+
214
+ expect(instance.valid?).to be(false)
215
+ end
137
216
  end
138
217
  end
139
218
 
140
- describe 'invalid when' do
141
- it 'has a value greater than the maximum' do
219
+ describe ActiveRecordSurvey::NodeValidation::MaximumValue do
220
+ before(:all) do
142
221
  @q1_a1.node_validations << ActiveRecordSurvey::NodeValidation::MaximumValue.new(
143
222
  :node => @q1_a1,
144
223
  :value => 15
145
224
  )
146
- instance = ActiveRecordSurvey::Instance.new(:survey => @survey)
147
- instance.instance_nodes.build(
148
- :instance => instance,
149
- :node => @q1_a1,
150
- :value => 20,
151
- )
152
- instance.save
225
+ end
226
+
227
+ describe 'valid when' do
228
+ it 'has a value less than the maximum' do
229
+ instance = ActiveRecordSurvey::Instance.new(:survey => @survey)
230
+ instance.instance_nodes.build(
231
+ :instance => instance,
232
+ :node => @q1_a1,
233
+ :value => 8,
234
+ )
235
+ instance.save
236
+
237
+ expect(instance.valid?).to be(true)
238
+ end
239
+ end
240
+
241
+ describe 'invalid when' do
242
+ it 'has a value greater than the maximum' do
243
+ instance = ActiveRecordSurvey::Instance.new(:survey => @survey)
244
+ instance.instance_nodes.build(
245
+ :instance => instance,
246
+ :node => @q1_a1,
247
+ :value => 20,
248
+ )
249
+ instance.save
153
250
 
154
- expect(instance.valid?).to be(false)
251
+ expect(instance.valid?).to be(false)
252
+ end
155
253
  end
156
254
  end
157
255
  end
@@ -1,6 +1,6 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe ActiveRecordSurvey::Node::Answer::Text, :test => true do
3
+ describe ActiveRecordSurvey::Node::Answer::Text do
4
4
  describe 'a text survey is' do
5
5
  before(:all) do
6
6
  @survey = ActiveRecordSurvey::Survey.new
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: active_record_survey
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.6
4
+ version: 0.1.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Butch Marshall
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-09-27 00:00:00.000000000 Z
11
+ date: 2015-09-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord