osm 1.2.15.dev.1 → 1.2.15
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +8 -8
- data/CHANGELOG.md +224 -221
- data/lib/osm/badge.rb +204 -102
- data/spec/osm/badge_spec.rb +217 -137
- data/version.rb +1 -1
- metadata +4 -4
data/spec/osm/badge_spec.rb
CHANGED
@@ -18,6 +18,13 @@ describe "Badge" do
|
|
18
18
|
:levels => [1, 2, 3],
|
19
19
|
:requirement_notes => 'notes',
|
20
20
|
:requirements => [],
|
21
|
+
:modules => [],
|
22
|
+
:min_modules_required => 5,
|
23
|
+
:min_requirements_required => 6,
|
24
|
+
:add_columns_to_module => 7,
|
25
|
+
:level_requirement => 8,
|
26
|
+
:requires_modules => [['A'], ['B', 'C']],
|
27
|
+
:show_level_letters => true,
|
21
28
|
}
|
22
29
|
end
|
23
30
|
|
@@ -34,6 +41,13 @@ describe "Badge" do
|
|
34
41
|
badge.levels.should == [1, 2, 3]
|
35
42
|
badge.requirement_notes.should == 'notes'
|
36
43
|
badge.requirements.should == []
|
44
|
+
badge.modules.should == []
|
45
|
+
badge.min_modules_required.should == 5
|
46
|
+
badge.min_requirements_required.should == 6
|
47
|
+
badge.add_columns_to_module.should == 7
|
48
|
+
badge.level_requirement.should == 8
|
49
|
+
badge.requires_modules.should == [['A'], ['B', 'C']]
|
50
|
+
badge.show_level_letters.should == true
|
37
51
|
badge.valid?.should be_true
|
38
52
|
end
|
39
53
|
|
@@ -43,53 +57,95 @@ describe "Badge" do
|
|
43
57
|
badge.valid?.should be_true
|
44
58
|
end
|
45
59
|
|
60
|
+
it "Valid with nil for level_requirement" do
|
61
|
+
badge = Osm::Badge.new(@badge_options.merge(level_requirement: nil))
|
62
|
+
badge.level_requirement.should be_nil
|
63
|
+
badge.valid?.should be_true
|
64
|
+
end
|
65
|
+
|
66
|
+
it "Valid with nil for add_columns_to_module" do
|
67
|
+
badge = Osm::Badge.new(@badge_options.merge(add_columns_to_module: nil))
|
68
|
+
badge.add_columns_to_module.should be_nil
|
69
|
+
badge.valid?.should be_true
|
70
|
+
end
|
71
|
+
|
46
72
|
end
|
47
73
|
|
48
74
|
it "Create Requirement" do
|
75
|
+
m = Osm::Badge::RequirementModule.new
|
49
76
|
requirement = Osm::Badge::Requirement.new(
|
50
77
|
:name => 'name',
|
51
78
|
:description => 'description',
|
52
|
-
:
|
53
|
-
:
|
79
|
+
:mod => m,
|
80
|
+
:id => 1,
|
54
81
|
:editable => true,
|
55
82
|
:badge => Osm::Badge.new(:identifier => 'key'),
|
56
83
|
)
|
57
84
|
|
58
85
|
requirement.name.should == 'name'
|
59
86
|
requirement.description.should == 'description'
|
60
|
-
requirement.
|
61
|
-
requirement.
|
87
|
+
requirement.mod.should == m
|
88
|
+
requirement.id.should == 1
|
62
89
|
requirement.editable.should be_true
|
63
90
|
requirement.badge.identifier.should == 'key'
|
64
91
|
requirement.valid?.should be_true
|
65
92
|
end
|
66
93
|
|
94
|
+
it "Create RequirementModule" do
|
95
|
+
b = Osm::Badge.new
|
96
|
+
m = Osm::Badge::RequirementModule.new(
|
97
|
+
badge: b,
|
98
|
+
id: 567,
|
99
|
+
letter: 'a',
|
100
|
+
min_required: 1,
|
101
|
+
custom_columns: 2,
|
102
|
+
completed_into_column: 3,
|
103
|
+
numeric_into_column: 4,
|
104
|
+
add_column_id_to_numeric: 5,
|
105
|
+
)
|
106
|
+
|
107
|
+
m.badge.should == b
|
108
|
+
m.id.should == 567
|
109
|
+
m.letter.should == 'a'
|
110
|
+
m.min_required.should == 1
|
111
|
+
m.custom_columns.should == 2
|
112
|
+
m.completed_into_column.should == 3
|
113
|
+
m.numeric_into_column.should == 4
|
114
|
+
m.add_column_id_to_numeric.should == 5
|
115
|
+
m.valid?.should be_true
|
116
|
+
end
|
117
|
+
|
118
|
+
it "Works out if we add columns to this badge" do
|
119
|
+
Osm::Badge.new(add_columns_to_module: 123).add_columns?.should be_true
|
120
|
+
Osm::Badge.new(add_columns_to_module: nil).add_columns?.should be_false
|
121
|
+
end
|
122
|
+
|
67
123
|
it "Produces a map of module letter <-> module id" do
|
68
|
-
badge = Osm::Badge.new(
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
]
|
124
|
+
badge = Osm::Badge.new(modules: [
|
125
|
+
Osm::Badge::RequirementModule.new(id: 2, letter: 'c'),
|
126
|
+
Osm::Badge::RequirementModule.new(id: 10, letter: 'b'),
|
127
|
+
Osm::Badge::RequirementModule.new(id: 1, letter: 'a'),
|
128
|
+
])
|
73
129
|
|
74
130
|
badge.module_map.should == {1=>'a', 10=>'b', 2=>'c', 'a'=>1, 'b'=>10, 'c'=>2}
|
75
131
|
end
|
76
132
|
|
77
133
|
it "Gets the number of requirements needed per module" do
|
78
|
-
badge = Osm::Badge.new(
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
]
|
134
|
+
badge = Osm::Badge.new(modules: [
|
135
|
+
Osm::Badge::RequirementModule.new(id: 2, letter: 'c', min_required: 5),
|
136
|
+
Osm::Badge::RequirementModule.new(id: 10, letter: 'b', min_required: 4),
|
137
|
+
Osm::Badge::RequirementModule.new(id: 1, letter: 'a', min_required: 3),
|
138
|
+
])
|
83
139
|
|
84
140
|
badge.needed_per_module.should == {'a'=>3, 'b'=>4, 'c'=>5, 2=>5, 10=>4, 1=>3}
|
85
141
|
end
|
86
142
|
|
87
143
|
it "Produces a list of modules" do
|
88
|
-
badge = Osm::Badge.new(
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
]
|
144
|
+
badge = Osm::Badge.new(modules: [
|
145
|
+
Osm::Badge::RequirementModule.new(id: 2, letter: 'c'),
|
146
|
+
Osm::Badge::RequirementModule.new(id: 10, letter: 'b'),
|
147
|
+
Osm::Badge::RequirementModule.new(id: 1, letter: 'a'),
|
148
|
+
])
|
93
149
|
|
94
150
|
badge.module_letters.should == ['a', 'b', 'c']
|
95
151
|
badge.module_ids.should == [1, 2, 10]
|
@@ -131,14 +187,23 @@ describe "Badge" do
|
|
131
187
|
badges.sort.should == [b1, b2, b3, b4]
|
132
188
|
end
|
133
189
|
|
134
|
-
it "Compare badge requirements by badge then
|
135
|
-
b1 = Osm::Badge::Requirement.new(:badge => Osm::Badge.new(:name => 'A'), :
|
136
|
-
b2 = Osm::Badge::Requirement.new(:badge => Osm::Badge.new(:name => 'B'), :
|
137
|
-
b3 = Osm::Badge::Requirement.new(:badge => Osm::Badge.new(:name => 'B'), :
|
190
|
+
it "Compare badge requirements by badge then id" do
|
191
|
+
b1 = Osm::Badge::Requirement.new(:badge => Osm::Badge.new(:name => 'A'), :id => 1)
|
192
|
+
b2 = Osm::Badge::Requirement.new(:badge => Osm::Badge.new(:name => 'B'), :id => 1)
|
193
|
+
b3 = Osm::Badge::Requirement.new(:badge => Osm::Badge.new(:name => 'B'), :id => 2)
|
138
194
|
badges = [b3, b1, b2]
|
139
195
|
badges.sort.should == [b1, b2, b3]
|
140
196
|
end
|
141
197
|
|
198
|
+
it "Compare badge requirement modules by badge then letter then id" do
|
199
|
+
b1 = Osm::Badge::RequirementModule.new(:badge => Osm::Badge.new(:name => 'A'), :letter => 'a', :id => 1)
|
200
|
+
b2 = Osm::Badge::RequirementModule.new(:badge => Osm::Badge.new(:name => 'B'), :letter => 'a', :id => 1)
|
201
|
+
b3 = Osm::Badge::RequirementModule.new(:badge => Osm::Badge.new(:name => 'B'), :letter => 'b', :id => 1)
|
202
|
+
b4 = Osm::Badge::RequirementModule.new(:badge => Osm::Badge.new(:name => 'B'), :letter => 'b', :id => 2)
|
203
|
+
badges = [b3, b4, b1, b2]
|
204
|
+
badges.sort.should == [b1, b2, b3, b4]
|
205
|
+
end
|
206
|
+
|
142
207
|
it "Compare badge data by badge, section_id then member_id" do
|
143
208
|
b1 = Osm::Badge::Data.new(:badge => Osm::Badge.new(:name => 'A'), :section_id => 1, :member_id => 1)
|
144
209
|
b2 = Osm::Badge::Data.new(:badge => Osm::Badge.new(:name => 'B'), :section_id => 1, :member_id => 1)
|
@@ -165,15 +230,15 @@ describe "Badge" do
|
|
165
230
|
data = Osm::Badge::Data.new(
|
166
231
|
:badge => Osm::Badge.new(
|
167
232
|
:requirements => [
|
168
|
-
Osm::Badge::Requirement.new(
|
169
|
-
Osm::Badge::Requirement.new(
|
170
|
-
Osm::Badge::Requirement.new(
|
171
|
-
Osm::Badge::Requirement.new(
|
172
|
-
Osm::Badge::Requirement.new(
|
173
|
-
Osm::Badge::Requirement.new(
|
174
|
-
Osm::Badge::Requirement.new(
|
175
|
-
Osm::Badge::Requirement.new(
|
176
|
-
Osm::Badge::Requirement.new(
|
233
|
+
Osm::Badge::Requirement.new(id: 1),
|
234
|
+
Osm::Badge::Requirement.new(id: 2),
|
235
|
+
Osm::Badge::Requirement.new(id: 3),
|
236
|
+
Osm::Badge::Requirement.new(id: 4),
|
237
|
+
Osm::Badge::Requirement.new(id: 5),
|
238
|
+
Osm::Badge::Requirement.new(id: 6),
|
239
|
+
Osm::Badge::Requirement.new(id: 7),
|
240
|
+
Osm::Badge::Requirement.new(id: 8),
|
241
|
+
Osm::Badge::Requirement.new(id: 9),
|
177
242
|
]
|
178
243
|
),
|
179
244
|
:requirements => {
|
@@ -195,19 +260,18 @@ describe "Badge" do
|
|
195
260
|
badge = Osm::Badge.new(
|
196
261
|
:needed_from_section => {'a' => 1, 'b' => 2},
|
197
262
|
:requirements => [
|
198
|
-
Osm::Badge::Requirement.new(:
|
199
|
-
Osm::Badge::Requirement.new(:
|
200
|
-
Osm::Badge::Requirement.new(:
|
201
|
-
Osm::Badge::Requirement.new(:
|
202
|
-
Osm::Badge::Requirement.new(:
|
203
|
-
Osm::Badge::Requirement.new(:
|
263
|
+
Osm::Badge::Requirement.new(mod: Osm::Badge::RequirementModule.new(:letter=> 'a', :id => 100), :id => 1),
|
264
|
+
Osm::Badge::Requirement.new(mod: Osm::Badge::RequirementModule.new(:letter=> 'a', :id => 100), :id => 2),
|
265
|
+
Osm::Badge::Requirement.new(mod: Osm::Badge::RequirementModule.new(:letter=> 'b', :id => 200), :id => 3),
|
266
|
+
Osm::Badge::Requirement.new(mod: Osm::Badge::RequirementModule.new(:letter=> 'b', :id => 200), :id => 4),
|
267
|
+
Osm::Badge::Requirement.new(mod: Osm::Badge::RequirementModule.new(:letter=> 'c', :id => 300), :id => 5),
|
268
|
+
Osm::Badge::Requirement.new(mod: Osm::Badge::RequirementModule.new(:letter=> 'c', :id => 300), :id => 6),
|
204
269
|
],
|
205
|
-
:
|
206
|
-
:
|
207
|
-
|
208
|
-
|
209
|
-
|
210
|
-
]}
|
270
|
+
:modules => [
|
271
|
+
Osm::Badge::RequirementModule.new(letter: 'a', id: 100),
|
272
|
+
Osm::Badge::RequirementModule.new(letter: 'b', id: 200),
|
273
|
+
Osm::Badge::RequirementModule.new(letter: 'c', id: 300),
|
274
|
+
]
|
211
275
|
)
|
212
276
|
data = Osm::Badge::Data.new(
|
213
277
|
:badge => badge,
|
@@ -219,18 +283,17 @@ describe "Badge" do
|
|
219
283
|
it "Get modules met for a member" do
|
220
284
|
badge = Osm::Badge.new(
|
221
285
|
:requirements => [
|
222
|
-
Osm::Badge::Requirement.new(:
|
223
|
-
Osm::Badge::Requirement.new(:
|
224
|
-
Osm::Badge::Requirement.new(:
|
225
|
-
Osm::Badge::Requirement.new(:
|
226
|
-
Osm::Badge::Requirement.new(:
|
286
|
+
Osm::Badge::Requirement.new(mod: Osm::Badge::RequirementModule.new(:letter=> 'a', :id => 1000), :id => 1),
|
287
|
+
Osm::Badge::Requirement.new(mod: Osm::Badge::RequirementModule.new(:letter=> 'a', :id => 1000), :id => 2),
|
288
|
+
Osm::Badge::Requirement.new(mod: Osm::Badge::RequirementModule.new(:letter=> 'b', :id => 2000), :id => 3),
|
289
|
+
Osm::Badge::Requirement.new(mod: Osm::Badge::RequirementModule.new(:letter=> 'b', :id => 2000), :id => 4),
|
290
|
+
Osm::Badge::Requirement.new(mod: Osm::Badge::RequirementModule.new(:letter=> 'c', :id => 3000), :id => 5),
|
227
291
|
],
|
228
|
-
:
|
229
|
-
:
|
230
|
-
|
231
|
-
|
232
|
-
|
233
|
-
]}
|
292
|
+
:modules => [
|
293
|
+
Osm::Badge::RequirementModule.new(letter: 'a', id: 1000, min_required: 1 ),
|
294
|
+
Osm::Badge::RequirementModule.new(letter: 'b', id: 2000, min_required: 2 ),
|
295
|
+
Osm::Badge::RequirementModule.new(letter: 'c', id: 3000, min_required: 1 )
|
296
|
+
]
|
234
297
|
)
|
235
298
|
data = Osm::Badge::Data.new(
|
236
299
|
:badge => badge,
|
@@ -255,27 +318,25 @@ describe "Badge" do
|
|
255
318
|
end
|
256
319
|
|
257
320
|
it "Non staged" do
|
258
|
-
|
321
|
+
badge = Osm::ActivityBadge.new(
|
259
322
|
:min_modules_required => 0,
|
260
|
-
:
|
323
|
+
:min_requirements_required => 0,
|
261
324
|
:modules => [
|
262
|
-
|
263
|
-
|
264
|
-
|
325
|
+
Osm::Badge::RequirementModule.new(id: 1, letter: 'a', min_required: 2),
|
326
|
+
Osm::Badge::RequirementModule.new(id: 2, letter: 'b', min_required: 1),
|
327
|
+
Osm::Badge::RequirementModule.new(id: 3, letter: 'c', min_required: 1),
|
265
328
|
],
|
266
329
|
:badges_required => [],
|
267
|
-
:
|
268
|
-
|
269
|
-
|
270
|
-
|
271
|
-
|
272
|
-
|
273
|
-
|
274
|
-
|
275
|
-
|
276
|
-
|
277
|
-
]
|
278
|
-
|
330
|
+
:other_requirements_required => [],
|
331
|
+
:requirements => [
|
332
|
+
Osm::Badge::Requirement.new(badge: badge, mod: Osm::Badge::RequirementModule.new(letter: 'a', id: 1), id: 10),
|
333
|
+
Osm::Badge::Requirement.new(badge: badge, mod: Osm::Badge::RequirementModule.new(letter: 'a', id: 1), id: 11),
|
334
|
+
Osm::Badge::Requirement.new(badge: badge, mod: Osm::Badge::RequirementModule.new(letter: 'b', id: 2), id: 20),
|
335
|
+
Osm::Badge::Requirement.new(badge: badge, mod: Osm::Badge::RequirementModule.new(letter: 'b', id: 2), id: 21),
|
336
|
+
Osm::Badge::Requirement.new(badge: badge, mod: Osm::Badge::RequirementModule.new(letter: 'c', id: 3), id: 30),
|
337
|
+
Osm::Badge::Requirement.new(badge: badge, mod: Osm::Badge::RequirementModule.new(letter: 'c', id: 3), id: 31),
|
338
|
+
],
|
339
|
+
)
|
279
340
|
|
280
341
|
data = Osm::Badge::Data.new(:due => 1, :awarded => 1, :badge => badge)
|
281
342
|
data.earnt?.should be_false
|
@@ -286,9 +347,7 @@ describe "Badge" do
|
|
286
347
|
|
287
348
|
# Number of modules required
|
288
349
|
this_badge = badge.clone
|
289
|
-
this_badge.
|
290
|
-
:min_modules_required => 2
|
291
|
-
})
|
350
|
+
this_badge.min_modules_required = 2
|
292
351
|
|
293
352
|
data = Osm::Badge::Data.new(:requirements => {10=>'y', 11=>'y', 20=>'y'}, :due => 0, :awarded => 0, :badge => this_badge)
|
294
353
|
data.earnt?.should be_true
|
@@ -299,9 +358,8 @@ describe "Badge" do
|
|
299
358
|
|
300
359
|
# Number of requirements needed
|
301
360
|
this_badge = badge.clone
|
302
|
-
this_badge.
|
303
|
-
|
304
|
-
})
|
361
|
+
this_badge.min_modules_required = 0
|
362
|
+
this_badge.min_requirements_required = 2
|
305
363
|
|
306
364
|
data = Osm::Badge::Data.new(:requirements => {10=>'y', 11=>'y', 20=>'y'}, :due => 0, :awarded => 0, :badge => this_badge)
|
307
365
|
data.earnt?.should be_true
|
@@ -315,9 +373,8 @@ describe "Badge" do
|
|
315
373
|
|
316
374
|
# Module combinations
|
317
375
|
this_badge = badge.clone
|
318
|
-
this_badge.
|
319
|
-
|
320
|
-
})
|
376
|
+
this_badge.requires_modules = [['a'], ['b', 'c']]
|
377
|
+
|
321
378
|
data = Osm::Badge::Data.new(:requirements => {10=>'x', 11=>'x', 20=>'x', 30=>'x'}, :due => 0, :awarded => 0, :badge => this_badge)
|
322
379
|
data.earnt?.should be_false
|
323
380
|
|
@@ -329,6 +386,32 @@ describe "Badge" do
|
|
329
386
|
|
330
387
|
data = Osm::Badge::Data.new(:requirements => {10=>'y', 11=>'y', 20=>'x', 30=>'y'}, :due => 0, :awarded => 0, :badge => this_badge)
|
331
388
|
data.earnt?.should be_true
|
389
|
+
|
390
|
+
# Requirements from another badge
|
391
|
+
this_badge = badge.clone
|
392
|
+
this_badge.min_modules_required = 0
|
393
|
+
this_badge.min_requirements_required = 1
|
394
|
+
this_badge.requires_modules = nil
|
395
|
+
# Simply met
|
396
|
+
this_badge.other_requirements_required = [{id: 100, min: 0}]
|
397
|
+
data = Osm::Badge::Data.new(:requirements => {10=>'y'}, :due => 0, :awarded => 0, :badge => this_badge)
|
398
|
+
data.earnt?.should be_true # Assume met if not in requirements Hash
|
399
|
+
data = Osm::Badge::Data.new(:requirements => {10=>'y', 100=>'x'}, :due => 0, :awarded => 0, :badge => this_badge)
|
400
|
+
data.earnt?.should be_false
|
401
|
+
data = Osm::Badge::Data.new(:requirements => {10=>'y', 100=>'y'}, :due => 0, :awarded => 0, :badge => this_badge)
|
402
|
+
data.earnt?.should be_true
|
403
|
+
# Minimum value
|
404
|
+
this_badge.other_requirements_required = [{id: 100, min: 2}]
|
405
|
+
data = Osm::Badge::Data.new(:requirements => {10=>'y'}, :due => 0, :awarded => 0, :badge => this_badge)
|
406
|
+
data.earnt?.should be_true # Assume met if not in requirements Hash
|
407
|
+
data = Osm::Badge::Data.new(:requirements => {10=>'y', 100=>'x'}, :due => 0, :awarded => 0, :badge => this_badge)
|
408
|
+
data.earnt?.should be_false
|
409
|
+
data = Osm::Badge::Data.new(:requirements => {10=>'y', 100=>'1'}, :due => 0, :awarded => 0, :badge => this_badge)
|
410
|
+
data.earnt?.should be_false
|
411
|
+
data = Osm::Badge::Data.new(:requirements => {10=>'y', 100=>'2'}, :due => 0, :awarded => 0, :badge => this_badge)
|
412
|
+
data.earnt?.should be_true
|
413
|
+
data = Osm::Badge::Data.new(:requirements => {10=>'y', 100=>'3'}, :due => 0, :awarded => 0, :badge => this_badge)
|
414
|
+
data.earnt?.should be_true
|
332
415
|
end
|
333
416
|
end
|
334
417
|
|
@@ -337,24 +420,22 @@ describe "Badge" do
|
|
337
420
|
it "Staged (activity)" do
|
338
421
|
badge = Osm::StagedBadge.new(
|
339
422
|
:levels => [0, 1, 2, 3],
|
340
|
-
:
|
341
|
-
|
342
|
-
|
343
|
-
:
|
344
|
-
|
345
|
-
|
346
|
-
|
347
|
-
|
348
|
-
:show_letters => true,
|
349
|
-
}
|
423
|
+
:min_modules_required => 0,
|
424
|
+
:min_requirements_completed => 0,
|
425
|
+
:modules => [
|
426
|
+
Osm::Badge::RequirementModule.new(id: 1, letter: 'a', min_required: 1),
|
427
|
+
Osm::Badge::RequirementModule.new(id: 2, letter: 'b', min_required: 1),
|
428
|
+
Osm::Badge::RequirementModule.new(id: 3, letter: 'c', min_required: 1),
|
429
|
+
],
|
430
|
+
:show_level_letters => true,
|
350
431
|
)
|
351
432
|
badge.requirements = [
|
352
|
-
Osm::Badge::Requirement.new(badge: badge,
|
353
|
-
Osm::Badge::Requirement.new(badge: badge,
|
354
|
-
Osm::Badge::Requirement.new(badge: badge,
|
355
|
-
Osm::Badge::Requirement.new(badge: badge,
|
356
|
-
Osm::Badge::Requirement.new(badge: badge,
|
357
|
-
Osm::Badge::Requirement.new(badge: badge,
|
433
|
+
Osm::Badge::Requirement.new(badge: badge, mod: Osm::Badge::RequirementModule.new(letter: 'a', id: 1), id: 10),
|
434
|
+
Osm::Badge::Requirement.new(badge: badge, mod: Osm::Badge::RequirementModule.new(letter: 'a', id: 1), id: 11),
|
435
|
+
Osm::Badge::Requirement.new(badge: badge, mod: Osm::Badge::RequirementModule.new(letter: 'b', id: 2), id: 20),
|
436
|
+
Osm::Badge::Requirement.new(badge: badge, mod: Osm::Badge::RequirementModule.new(letter: 'b', id: 2), id: 21),
|
437
|
+
Osm::Badge::Requirement.new(badge: badge, mod: Osm::Badge::RequirementModule.new(letter: 'c', id: 3), id: 30),
|
438
|
+
Osm::Badge::Requirement.new(badge: badge, mod: Osm::Badge::RequirementModule.new(letter: 'c', id: 3), id: 31),
|
358
439
|
]
|
359
440
|
|
360
441
|
requirements = {10=>'',11=>'',20=>'',21=>'',30=>'',31=>''}
|
@@ -381,7 +462,8 @@ describe "Badge" do
|
|
381
462
|
it "Staged (count)" do
|
382
463
|
badge = Osm::StagedBadge.new(
|
383
464
|
:levels => [0,1,2,3,4,5,10,15,20],
|
384
|
-
:
|
465
|
+
:show_level_letters => false,
|
466
|
+
:level_requirement => 3000,
|
385
467
|
:requirements => []
|
386
468
|
)
|
387
469
|
|
@@ -412,11 +494,11 @@ describe "Badge" do
|
|
412
494
|
Osm::Badge::Data.new(
|
413
495
|
:badge => Osm::StagedBadge.new(
|
414
496
|
:levels => [0,1,2],
|
415
|
-
:
|
497
|
+
:show_level_letters => true,
|
416
498
|
:requirements => [
|
417
|
-
Osm::Badge::Requirement.new(:
|
418
|
-
Osm::Badge::Requirement.new(:
|
419
|
-
Osm::Badge::Requirement.new(:
|
499
|
+
Osm::Badge::Requirement.new(mod: Osm::Badge::RequirementModule.new(:letter => 'a'), :id => 1000),
|
500
|
+
Osm::Badge::Requirement.new(mod: Osm::Badge::RequirementModule.new(:letter => 'b'), :id => 2000),
|
501
|
+
Osm::Badge::Requirement.new(mod: Osm::Badge::RequirementModule.new(:letter => 'b'), :id => 2001),
|
420
502
|
]
|
421
503
|
),
|
422
504
|
:requirements => {1000 => 'Yes', 2000 => 'Yes', 2001 => ''},
|
@@ -425,13 +507,13 @@ describe "Badge" do
|
|
425
507
|
|
426
508
|
# Staged Count Badge
|
427
509
|
Osm::Badge::Data.new(
|
428
|
-
:badge => Osm::StagedBadge.new(:levels => [0,1,2,3,4,5,10,15,20], :
|
510
|
+
:badge => Osm::StagedBadge.new(:levels => [0,1,2,3,4,5,10,15,20], :show_level_letters => false, :level_requirement => 1000),
|
429
511
|
:requirements => {1000 => 5, 2000 => '5', 3000 => ''},
|
430
512
|
:due => 5,
|
431
513
|
:awarded => 4,
|
432
514
|
).started?.should be_false # Finished lvl 5 & not started lvl 10
|
433
515
|
Osm::Badge::Data.new(
|
434
|
-
:badge => Osm::StagedBadge.new(:levels => [0,1,2,3,4,5,10,15,20], :
|
516
|
+
:badge => Osm::StagedBadge.new(:levels => [0,1,2,3,4,5,10,15,20], :show_level_letters => false, :level_requirement => 1000),
|
435
517
|
:requirements => {1000 => 6, 2000 => '6', 3000 => ''},
|
436
518
|
:due => 5,
|
437
519
|
:awarded => 3,
|
@@ -449,11 +531,11 @@ describe "Badge" do
|
|
449
531
|
# Staged Activity
|
450
532
|
staged_activity = Osm::StagedBadge.new(
|
451
533
|
:levels => [0,1,2],
|
452
|
-
:
|
534
|
+
:show_level_letters => true,
|
453
535
|
:requirements => [
|
454
|
-
Osm::Badge::Requirement.new(:
|
455
|
-
Osm::Badge::Requirement.new(:
|
456
|
-
Osm::Badge::Requirement.new(:
|
536
|
+
Osm::Badge::Requirement.new(mod: Osm::Badge::RequirementModule.new(:letter => 'a'), :id => 100),
|
537
|
+
Osm::Badge::Requirement.new(mod: Osm::Badge::RequirementModule.new(:letter => 'b'), :id => 200),
|
538
|
+
Osm::Badge::Requirement.new(mod: Osm::Badge::RequirementModule.new(:letter => 'b'), :id => 201),
|
457
539
|
]
|
458
540
|
)
|
459
541
|
|
@@ -477,7 +559,8 @@ describe "Badge" do
|
|
477
559
|
# Staged count
|
478
560
|
staged_count = Osm::StagedBadge.new(
|
479
561
|
:levels => [0,1,2,3,4,5,10,15,20],
|
480
|
-
:
|
562
|
+
:show_level_letters => false,
|
563
|
+
:level_requirement => 3000,
|
481
564
|
:requirements => []
|
482
565
|
)
|
483
566
|
|
@@ -507,7 +590,7 @@ describe "Badge" do
|
|
507
590
|
'badge_identifier' => '123_0',
|
508
591
|
'badge_order' => '4',
|
509
592
|
'badge_version' => '0',
|
510
|
-
'config' => '{"numModulesRequired":1}',
|
593
|
+
'config' => '{"numModulesRequired":1,"shownumbers":true}',
|
511
594
|
'description' => 'b_req_notes',
|
512
595
|
'group_name' => '',
|
513
596
|
'lastupdated' => '2014-09-14 02:32:05',
|
@@ -581,38 +664,35 @@ describe "Badge" do
|
|
581
664
|
badge.user_id.should == 0
|
582
665
|
badge.sharing.should == :default_locked
|
583
666
|
badge.requirements.size.should == 1
|
667
|
+
badge.min_modules_required.should == 1
|
668
|
+
badge.min_requirements_required.should == 0
|
669
|
+
badge.add_columns_to_module.should == nil
|
670
|
+
badge.level_requirement.should == nil
|
671
|
+
badge.requires_modules.should == nil
|
672
|
+
badge.other_requirements_required.should == []
|
673
|
+
badge.badges_required.should == []
|
674
|
+
badge.show_level_letters.should == true
|
584
675
|
badge.valid?.should be_true
|
676
|
+
badge.modules.size.should == 1
|
677
|
+
m = badge.modules[0]
|
678
|
+
m.badge.id.should == 123
|
679
|
+
m.badge.version.should == 0
|
680
|
+
m.id.should == 234
|
681
|
+
m.letter.should == 'a'
|
682
|
+
m.min_required.should == 0
|
683
|
+
m.custom_columns.should == 0
|
684
|
+
m.completed_into_column.should == nil
|
685
|
+
m.numeric_into_column.should == nil
|
686
|
+
m.add_column_id_to_numeric.should == nil
|
687
|
+
m.valid?.should be_true
|
585
688
|
requirement = badge.requirements[0]
|
586
689
|
requirement.name.should == 'r_name'
|
587
690
|
requirement.description.should == 'r_description'
|
588
|
-
requirement.
|
589
|
-
requirement.
|
691
|
+
requirement.id.should == 2345
|
692
|
+
requirement.mod.should == m
|
590
693
|
requirement.editable.should be_true
|
591
694
|
requirement.badge.should == badge
|
592
695
|
requirement.valid?.should be_true
|
593
|
-
badge.completion_criteria.should == {
|
594
|
-
:min_modules_required => 1,
|
595
|
-
:fields_required => [],
|
596
|
-
:badges_required => [],
|
597
|
-
:min_requirements_completed => 0,
|
598
|
-
:requires => nil,
|
599
|
-
:add_columns_to_module => nil,
|
600
|
-
:levels_column => nil,
|
601
|
-
:show_letters => false,
|
602
|
-
:modules => [
|
603
|
-
{
|
604
|
-
:badge_id => 123,
|
605
|
-
:badge_version => 0,
|
606
|
-
:module_id => 234,
|
607
|
-
:module_letter => 'a',
|
608
|
-
:min_required => 0,
|
609
|
-
:custom_columns => 0,
|
610
|
-
:completed_into_column => nil,
|
611
|
-
:numeric_into_column => nil,
|
612
|
-
:add_column_id_to_numeric => nil,
|
613
|
-
}
|
614
|
-
]
|
615
|
-
}
|
616
696
|
end
|
617
697
|
end
|
618
698
|
|
@@ -676,8 +756,8 @@ describe "Badge" do
|
|
676
756
|
:id => 123,
|
677
757
|
:version => 0,
|
678
758
|
:requirements => [
|
679
|
-
Osm::Badge::Requirement.new(:
|
680
|
-
Osm::Badge::Requirement.new(:
|
759
|
+
Osm::Badge::Requirement.new(:id => 2345, :editable => true),
|
760
|
+
Osm::Badge::Requirement.new(:id => 6789, :editable => true),
|
681
761
|
]),
|
682
762
|
:due => 0,
|
683
763
|
)
|