flipper 0.7.1 → 0.7.2

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.
Files changed (39) hide show
  1. checksums.yaml +4 -4
  2. data/Changelog.md +4 -0
  3. data/Gemfile +1 -1
  4. data/docs/Adapters.md +2 -1
  5. data/examples/enabled_for_actor.rb +43 -0
  6. data/lib/flipper/spec/shared_adapter_specs.rb +71 -71
  7. data/lib/flipper/version.rb +1 -1
  8. data/spec/flipper/adapters/instrumented_spec.rb +44 -44
  9. data/spec/flipper/adapters/memoizable_spec.rb +21 -21
  10. data/spec/flipper/adapters/memory_spec.rb +1 -1
  11. data/spec/flipper/adapters/operation_logger_spec.rb +11 -11
  12. data/spec/flipper/adapters/pstore_spec.rb +2 -2
  13. data/spec/flipper/dsl_spec.rb +34 -34
  14. data/spec/flipper/feature_spec.rb +167 -167
  15. data/spec/flipper/gate_spec.rb +5 -5
  16. data/spec/flipper/gate_values_spec.rb +17 -17
  17. data/spec/flipper/gates/actor_spec.rb +1 -1
  18. data/spec/flipper/gates/boolean_spec.rb +13 -13
  19. data/spec/flipper/gates/group_spec.rb +6 -6
  20. data/spec/flipper/gates/percentage_of_actors_spec.rb +3 -3
  21. data/spec/flipper/gates/percentage_of_time_spec.rb +1 -1
  22. data/spec/flipper/instrumentation/log_subscriber_spec.rb +10 -10
  23. data/spec/flipper/instrumentation/metriks_subscriber_spec.rb +14 -14
  24. data/spec/flipper/instrumentation/statsd_subscriber_spec.rb +5 -3
  25. data/spec/flipper/instrumenters/memory_spec.rb +4 -4
  26. data/spec/flipper/instrumenters/noop_spec.rb +3 -3
  27. data/spec/flipper/middleware/memoizer_spec.rb +8 -8
  28. data/spec/flipper/registry_spec.rb +17 -17
  29. data/spec/flipper/typecast_spec.rb +4 -4
  30. data/spec/flipper/types/actor_spec.rb +14 -14
  31. data/spec/flipper/types/boolean_spec.rb +5 -5
  32. data/spec/flipper/types/group_spec.rb +8 -8
  33. data/spec/flipper/types/percentage_of_actors_spec.rb +1 -1
  34. data/spec/flipper/types/percentage_of_time_spec.rb +1 -1
  35. data/spec/flipper/types/percentage_spec.rb +8 -8
  36. data/spec/flipper_spec.rb +19 -19
  37. data/spec/helper.rb +14 -14
  38. data/spec/integration_spec.rb +80 -80
  39. metadata +4 -3
@@ -3,7 +3,7 @@ require 'flipper/feature'
3
3
  require 'flipper/adapters/memory'
4
4
  require 'flipper/instrumenters/memory'
5
5
 
6
- describe Flipper::Feature do
6
+ RSpec.describe Flipper::Feature do
7
7
  subject { described_class.new(:search, adapter) }
8
8
 
9
9
  let(:adapter) { Flipper::Adapters::Memory.new }
@@ -11,17 +11,17 @@ describe Flipper::Feature do
11
11
  describe "#initialize" do
12
12
  it "sets name" do
13
13
  feature = described_class.new(:search, adapter)
14
- feature.name.should eq(:search)
14
+ expect(feature.name).to eq(:search)
15
15
  end
16
16
 
17
17
  it "sets adapter" do
18
18
  feature = described_class.new(:search, adapter)
19
- feature.adapter.should eq(adapter)
19
+ expect(feature.adapter).to eq(adapter)
20
20
  end
21
21
 
22
22
  it "defaults instrumenter" do
23
23
  feature = described_class.new(:search, adapter)
24
- feature.instrumenter.should be(Flipper::Instrumenters::Noop)
24
+ expect(feature.instrumenter).to be(Flipper::Instrumenters::Noop)
25
25
  end
26
26
 
27
27
  context "with overriden instrumenter" do
@@ -31,7 +31,7 @@ describe Flipper::Feature do
31
31
  feature = described_class.new(:search, adapter, {
32
32
  :instrumenter => instrumenter,
33
33
  })
34
- feature.instrumenter.should be(instrumenter)
34
+ expect(feature.instrumenter).to be(instrumenter)
35
35
  end
36
36
  end
37
37
  end
@@ -39,14 +39,14 @@ describe Flipper::Feature do
39
39
  describe "#to_s" do
40
40
  it "returns name as string" do
41
41
  feature = described_class.new(:search, adapter)
42
- feature.to_s.should eq("search")
42
+ expect(feature.to_s).to eq("search")
43
43
  end
44
44
  end
45
45
 
46
46
  describe "#to_param" do
47
47
  it "returns name as string" do
48
48
  feature = described_class.new(:search, adapter)
49
- feature.to_param.should eq("search")
49
+ expect(feature.to_param).to eq("search")
50
50
  end
51
51
  end
52
52
 
@@ -55,7 +55,7 @@ describe Flipper::Feature do
55
55
  it "returns percentage of actors gate" do
56
56
  percentage = Flipper::Types::PercentageOfActors.new(10)
57
57
  gate = subject.gate_for(percentage)
58
- gate.should be_instance_of(Flipper::Gates::PercentageOfActors)
58
+ expect(gate).to be_instance_of(Flipper::Gates::PercentageOfActors)
59
59
  end
60
60
  end
61
61
  end
@@ -63,30 +63,30 @@ describe Flipper::Feature do
63
63
  describe "#gates" do
64
64
  it "returns array of gates" do
65
65
  instance = described_class.new(:search, adapter)
66
- instance.gates.should be_instance_of(Array)
66
+ expect(instance.gates).to be_instance_of(Array)
67
67
  instance.gates.each do |gate|
68
- gate.should be_a(Flipper::Gate)
68
+ expect(gate).to be_a(Flipper::Gate)
69
69
  end
70
- instance.gates.size.should be(5)
70
+ expect(instance.gates.size).to be(5)
71
71
  end
72
72
  end
73
73
 
74
74
  describe "#gate" do
75
75
  context "with symbol name" do
76
76
  it "returns gate by name" do
77
- subject.gate(:boolean).should be_instance_of(Flipper::Gates::Boolean)
77
+ expect(subject.gate(:boolean)).to be_instance_of(Flipper::Gates::Boolean)
78
78
  end
79
79
  end
80
80
 
81
81
  context "with string name" do
82
82
  it "returns gate by name" do
83
- subject.gate('boolean').should be_instance_of(Flipper::Gates::Boolean)
83
+ expect(subject.gate('boolean')).to be_instance_of(Flipper::Gates::Boolean)
84
84
  end
85
85
  end
86
86
 
87
87
  context "with name that does not exist" do
88
88
  it "returns nil" do
89
- subject.gate(:poo).should be_nil
89
+ expect(subject.gate(:poo)).to be_nil
90
90
  end
91
91
  end
92
92
  end
@@ -94,16 +94,16 @@ describe Flipper::Feature do
94
94
  describe "#inspect" do
95
95
  it "returns easy to read string representation" do
96
96
  string = subject.inspect
97
- string.should include('Flipper::Feature')
98
- string.should include('name=:search')
99
- string.should include('state=:off')
100
- string.should include('enabled_gate_names=[]')
101
- string.should include("adapter=#{subject.adapter.name.inspect}")
97
+ expect(string).to include('Flipper::Feature')
98
+ expect(string).to include('name=:search')
99
+ expect(string).to include('state=:off')
100
+ expect(string).to include('enabled_gate_names=[]')
101
+ expect(string).to include("adapter=#{subject.adapter.name.inspect}")
102
102
 
103
103
  subject.enable
104
104
  string = subject.inspect
105
- string.should include('state=:on')
106
- string.should include('enabled_gate_names=[:boolean]')
105
+ expect(string).to include('state=:on')
106
+ expect(string).to include('enabled_gate_names=[:boolean]')
107
107
  end
108
108
  end
109
109
 
@@ -121,12 +121,12 @@ describe Flipper::Feature do
121
121
  subject.enable(thing)
122
122
 
123
123
  event = instrumenter.events.last
124
- event.should_not be_nil
125
- event.name.should eq('feature_operation.flipper')
126
- event.payload[:feature_name].should eq(:search)
127
- event.payload[:operation].should eq(:enable)
128
- event.payload[:thing].should eq(thing)
129
- event.payload[:result].should_not be_nil
124
+ expect(event).not_to be_nil
125
+ expect(event.name).to eq('feature_operation.flipper')
126
+ expect(event.payload[:feature_name]).to eq(:search)
127
+ expect(event.payload[:operation]).to eq(:enable)
128
+ expect(event.payload[:thing]).to eq(thing)
129
+ expect(event.payload[:result]).not_to be_nil
130
130
  end
131
131
 
132
132
  it "always instruments flipper type instance for enable" do
@@ -136,8 +136,8 @@ describe Flipper::Feature do
136
136
  subject.enable(thing)
137
137
 
138
138
  event = instrumenter.events.last
139
- event.should_not be_nil
140
- event.payload[:thing].should eq(Flipper::Types::Actor.new(thing))
139
+ expect(event).not_to be_nil
140
+ expect(event.payload[:thing]).to eq(Flipper::Types::Actor.new(thing))
141
141
  end
142
142
 
143
143
  it "is recorded for disable" do
@@ -147,12 +147,12 @@ describe Flipper::Feature do
147
147
  subject.disable(thing)
148
148
 
149
149
  event = instrumenter.events.last
150
- event.should_not be_nil
151
- event.name.should eq('feature_operation.flipper')
152
- event.payload[:feature_name].should eq(:search)
153
- event.payload[:operation].should eq(:disable)
154
- event.payload[:thing].should eq(thing)
155
- event.payload[:result].should_not be_nil
150
+ expect(event).not_to be_nil
151
+ expect(event.name).to eq('feature_operation.flipper')
152
+ expect(event.payload[:feature_name]).to eq(:search)
153
+ expect(event.payload[:operation]).to eq(:disable)
154
+ expect(event.payload[:thing]).to eq(thing)
155
+ expect(event.payload[:result]).not_to be_nil
156
156
  end
157
157
 
158
158
  user = Struct.new(:flipper_id).new("1")
@@ -179,9 +179,9 @@ describe Flipper::Feature do
179
179
  subject.enable(thing)
180
180
 
181
181
  event = instrumenter.events.last
182
- event.should_not be_nil
183
- event.payload[:operation].should eq(:enable)
184
- event.payload[:thing].should eq(wrapped_thing)
182
+ expect(event).not_to be_nil
183
+ expect(event.payload[:operation]).to eq(:enable)
184
+ expect(event.payload[:thing]).to eq(wrapped_thing)
185
185
  end
186
186
  end
187
187
 
@@ -192,9 +192,9 @@ describe Flipper::Feature do
192
192
  subject.disable(thing)
193
193
 
194
194
  event = instrumenter.events.last
195
- event.should_not be_nil
196
- event.payload[:operation].should eq(:disable)
197
- event.payload[:thing].should eq(Flipper::Types::Actor.new(thing))
195
+ expect(event).not_to be_nil
196
+ expect(event.payload[:operation]).to eq(:disable)
197
+ expect(event.payload[:thing]).to eq(Flipper::Types::Actor.new(thing))
198
198
  end
199
199
 
200
200
  it "is recorded for enabled?" do
@@ -204,12 +204,12 @@ describe Flipper::Feature do
204
204
  subject.enabled?(thing)
205
205
 
206
206
  event = instrumenter.events.last
207
- event.should_not be_nil
208
- event.name.should eq('feature_operation.flipper')
209
- event.payload[:feature_name].should eq(:search)
210
- event.payload[:operation].should eq(:enabled?)
211
- event.payload[:thing].should eq(thing)
212
- event.payload[:result].should eq(false)
207
+ expect(event).not_to be_nil
208
+ expect(event.name).to eq('feature_operation.flipper')
209
+ expect(event.payload[:feature_name]).to eq(:search)
210
+ expect(event.payload[:operation]).to eq(:enabled?)
211
+ expect(event.payload[:thing]).to eq(thing)
212
+ expect(event.payload[:result]).to eq(false)
213
213
  end
214
214
 
215
215
  user = Struct.new(:flipper_id).new("1")
@@ -223,9 +223,9 @@ describe Flipper::Feature do
223
223
  subject.enabled?(thing)
224
224
 
225
225
  event = instrumenter.events.last
226
- event.should_not be_nil
227
- event.payload[:operation].should eq(:enabled?)
228
- event.payload[:thing].should eq(wrapped_thing)
226
+ expect(event).not_to be_nil
227
+ expect(event.payload[:operation]).to eq(:enabled?)
228
+ expect(event.payload[:thing]).to eq(wrapped_thing)
229
229
  end
230
230
  end
231
231
  end
@@ -237,19 +237,19 @@ describe Flipper::Feature do
237
237
  end
238
238
 
239
239
  it "returns :on" do
240
- subject.state.should be(:on)
240
+ expect(subject.state).to be(:on)
241
241
  end
242
242
 
243
243
  it "returns true for on?" do
244
- subject.on?.should be(true)
244
+ expect(subject.on?).to be(true)
245
245
  end
246
246
 
247
247
  it "returns false for off?" do
248
- subject.off?.should be(false)
248
+ expect(subject.off?).to be(false)
249
249
  end
250
250
 
251
251
  it "returns false for conditional?" do
252
- subject.conditional?.should be(false)
252
+ expect(subject.conditional?).to be(false)
253
253
  end
254
254
  end
255
255
 
@@ -259,19 +259,19 @@ describe Flipper::Feature do
259
259
  end
260
260
 
261
261
  it "returns :on" do
262
- subject.state.should be(:on)
262
+ expect(subject.state).to be(:on)
263
263
  end
264
264
 
265
265
  it "returns true for on?" do
266
- subject.on?.should be(true)
266
+ expect(subject.on?).to be(true)
267
267
  end
268
268
 
269
269
  it "returns false for off?" do
270
- subject.off?.should be(false)
270
+ expect(subject.off?).to be(false)
271
271
  end
272
272
 
273
273
  it "returns false for conditional?" do
274
- subject.conditional?.should be(false)
274
+ expect(subject.conditional?).to be(false)
275
275
  end
276
276
  end
277
277
 
@@ -281,19 +281,19 @@ describe Flipper::Feature do
281
281
  end
282
282
 
283
283
  it "returns :on" do
284
- subject.state.should be(:on)
284
+ expect(subject.state).to be(:on)
285
285
  end
286
286
 
287
287
  it "returns true for on?" do
288
- subject.on?.should be(true)
288
+ expect(subject.on?).to be(true)
289
289
  end
290
290
 
291
291
  it "returns false for off?" do
292
- subject.off?.should be(false)
292
+ expect(subject.off?).to be(false)
293
293
  end
294
294
 
295
295
  it "returns false for conditional?" do
296
- subject.conditional?.should be(false)
296
+ expect(subject.conditional?).to be(false)
297
297
  end
298
298
  end
299
299
 
@@ -303,19 +303,19 @@ describe Flipper::Feature do
303
303
  end
304
304
 
305
305
  it "returns :off" do
306
- subject.state.should be(:off)
306
+ expect(subject.state).to be(:off)
307
307
  end
308
308
 
309
309
  it "returns false for on?" do
310
- subject.on?.should be(false)
310
+ expect(subject.on?).to be(false)
311
311
  end
312
312
 
313
313
  it "returns true for off?" do
314
- subject.off?.should be(true)
314
+ expect(subject.off?).to be(true)
315
315
  end
316
316
 
317
317
  it "returns false for conditional?" do
318
- subject.conditional?.should be(false)
318
+ expect(subject.conditional?).to be(false)
319
319
  end
320
320
  end
321
321
 
@@ -325,19 +325,19 @@ describe Flipper::Feature do
325
325
  end
326
326
 
327
327
  it "returns :conditional" do
328
- subject.state.should be(:conditional)
328
+ expect(subject.state).to be(:conditional)
329
329
  end
330
330
 
331
331
  it "returns false for on?" do
332
- subject.on?.should be(false)
332
+ expect(subject.on?).to be(false)
333
333
  end
334
334
 
335
335
  it "returns false for off?" do
336
- subject.off?.should be(false)
336
+ expect(subject.off?).to be(false)
337
337
  end
338
338
 
339
339
  it "returns true for conditional?" do
340
- subject.conditional?.should be(true)
340
+ expect(subject.conditional?).to be(true)
341
341
  end
342
342
  end
343
343
  end
@@ -345,7 +345,7 @@ describe Flipper::Feature do
345
345
  describe "#enabled_groups" do
346
346
  context "when no groups enabled" do
347
347
  it "returns empty set" do
348
- subject.enabled_groups.should eq(Set.new)
348
+ expect(subject.enabled_groups).to eq(Set.new)
349
349
  end
350
350
  end
351
351
 
@@ -361,22 +361,22 @@ describe Flipper::Feature do
361
361
  end
362
362
 
363
363
  it "returns set of enabled groups" do
364
- subject.enabled_groups.should eq(Set.new([
365
- @staff,
366
- @preview_features,
367
- ]))
364
+ expect(subject.enabled_groups).to eq(Set.new([
365
+ @staff,
366
+ @preview_features,
367
+ ]))
368
368
  end
369
369
 
370
370
  it "does not include groups that have not been enabled" do
371
- subject.enabled_groups.should_not include(@not_enabled)
371
+ expect(subject.enabled_groups).not_to include(@not_enabled)
372
372
  end
373
373
 
374
374
  it "does not include disabled groups" do
375
- subject.enabled_groups.should_not include(@disabled)
375
+ expect(subject.enabled_groups).not_to include(@disabled)
376
376
  end
377
377
 
378
378
  it "is aliased to groups" do
379
- subject.enabled_groups.should eq(subject.groups)
379
+ expect(subject.enabled_groups).to eq(subject.groups)
380
380
  end
381
381
  end
382
382
  end
@@ -384,7 +384,7 @@ describe Flipper::Feature do
384
384
  describe "#disabled_groups" do
385
385
  context "when no groups enabled" do
386
386
  it "returns empty set" do
387
- subject.disabled_groups.should eq(Set.new)
387
+ expect(subject.disabled_groups).to eq(Set.new)
388
388
  end
389
389
  end
390
390
 
@@ -400,10 +400,10 @@ describe Flipper::Feature do
400
400
  end
401
401
 
402
402
  it "returns set of groups that are not enabled" do
403
- subject.disabled_groups.should eq(Set[
404
- @not_enabled,
405
- @disabled,
406
- ])
403
+ expect(subject.disabled_groups).to eq(Set[
404
+ @not_enabled,
405
+ @disabled,
406
+ ])
407
407
  end
408
408
  end
409
409
  end
@@ -411,7 +411,7 @@ describe Flipper::Feature do
411
411
  describe "#groups_value" do
412
412
  context "when no groups enabled" do
413
413
  it "returns empty set" do
414
- subject.groups_value.should eq(Set.new)
414
+ expect(subject.groups_value).to eq(Set.new)
415
415
  end
416
416
  end
417
417
 
@@ -427,18 +427,18 @@ describe Flipper::Feature do
427
427
  end
428
428
 
429
429
  it "returns set of enabled groups" do
430
- subject.groups_value.should eq(Set.new([
431
- @staff.name.to_s,
432
- @preview_features.name.to_s,
433
- ]))
430
+ expect(subject.groups_value).to eq(Set.new([
431
+ @staff.name.to_s,
432
+ @preview_features.name.to_s,
433
+ ]))
434
434
  end
435
435
 
436
436
  it "does not include groups that have not been enabled" do
437
- subject.groups_value.should_not include(@not_enabled.name.to_s)
437
+ expect(subject.groups_value).not_to include(@not_enabled.name.to_s)
438
438
  end
439
439
 
440
440
  it "does not include disabled groups" do
441
- subject.groups_value.should_not include(@disabled.name.to_s)
441
+ expect(subject.groups_value).not_to include(@disabled.name.to_s)
442
442
  end
443
443
  end
444
444
  end
@@ -446,7 +446,7 @@ describe Flipper::Feature do
446
446
  describe "#actors_value" do
447
447
  context "when no groups enabled" do
448
448
  it "returns empty set" do
449
- subject.actors_value.should eq(Set.new)
449
+ expect(subject.actors_value).to eq(Set.new)
450
450
  end
451
451
  end
452
452
 
@@ -457,7 +457,7 @@ describe Flipper::Feature do
457
457
  end
458
458
 
459
459
  it "returns set of actor ids" do
460
- subject.actors_value.should eq(Set.new(["User:5", "User:22"]))
460
+ expect(subject.actors_value).to eq(Set.new(["User:5", "User:22"]))
461
461
  end
462
462
  end
463
463
  end
@@ -465,7 +465,7 @@ describe Flipper::Feature do
465
465
  describe "#boolean_value" do
466
466
  context "when not enabled or disabled" do
467
467
  it "returns false" do
468
- subject.boolean_value.should be(false)
468
+ expect(subject.boolean_value).to be(false)
469
469
  end
470
470
  end
471
471
 
@@ -475,7 +475,7 @@ describe Flipper::Feature do
475
475
  end
476
476
 
477
477
  it "returns true" do
478
- subject.boolean_value.should be(true)
478
+ expect(subject.boolean_value).to be(true)
479
479
  end
480
480
  end
481
481
 
@@ -485,7 +485,7 @@ describe Flipper::Feature do
485
485
  end
486
486
 
487
487
  it "returns false" do
488
- subject.boolean_value.should be(false)
488
+ expect(subject.boolean_value).to be(false)
489
489
  end
490
490
  end
491
491
  end
@@ -493,7 +493,7 @@ describe Flipper::Feature do
493
493
  describe "#percentage_of_actors_value" do
494
494
  context "when not enabled or disabled" do
495
495
  it "returns nil" do
496
- subject.percentage_of_actors_value.should be(0)
496
+ expect(subject.percentage_of_actors_value).to be(0)
497
497
  end
498
498
  end
499
499
 
@@ -503,7 +503,7 @@ describe Flipper::Feature do
503
503
  end
504
504
 
505
505
  it "returns true" do
506
- subject.percentage_of_actors_value.should eq(5)
506
+ expect(subject.percentage_of_actors_value).to eq(5)
507
507
  end
508
508
  end
509
509
 
@@ -513,7 +513,7 @@ describe Flipper::Feature do
513
513
  end
514
514
 
515
515
  it "returns nil" do
516
- subject.percentage_of_actors_value.should be(0)
516
+ expect(subject.percentage_of_actors_value).to be(0)
517
517
  end
518
518
  end
519
519
  end
@@ -521,7 +521,7 @@ describe Flipper::Feature do
521
521
  describe "#percentage_of_time_value" do
522
522
  context "when not enabled or disabled" do
523
523
  it "returns nil" do
524
- subject.percentage_of_time_value.should be(0)
524
+ expect(subject.percentage_of_time_value).to be(0)
525
525
  end
526
526
  end
527
527
 
@@ -531,7 +531,7 @@ describe Flipper::Feature do
531
531
  end
532
532
 
533
533
  it "returns true" do
534
- subject.percentage_of_time_value.should eq(5)
534
+ expect(subject.percentage_of_time_value).to eq(5)
535
535
  end
536
536
  end
537
537
 
@@ -541,7 +541,7 @@ describe Flipper::Feature do
541
541
  end
542
542
 
543
543
  it "returns nil" do
544
- subject.percentage_of_time_value.should be(0)
544
+ expect(subject.percentage_of_time_value).to be(0)
545
545
  end
546
546
  end
547
547
  end
@@ -549,13 +549,13 @@ describe Flipper::Feature do
549
549
  describe "#gate_values" do
550
550
  context "when no gates are set in adapter" do
551
551
  it "returns default gate values" do
552
- subject.gate_values.should eq(Flipper::GateValues.new({
553
- :actors => Set.new,
554
- :groups => Set.new,
555
- :boolean => nil,
556
- :percentage_of_actors => nil,
557
- :percentage_of_time => nil,
558
- }))
552
+ expect(subject.gate_values).to eq(Flipper::GateValues.new({
553
+ :actors => Set.new,
554
+ :groups => Set.new,
555
+ :boolean => nil,
556
+ :percentage_of_actors => nil,
557
+ :percentage_of_time => nil,
558
+ }))
559
559
  end
560
560
  end
561
561
 
@@ -569,13 +569,13 @@ describe Flipper::Feature do
569
569
  end
570
570
 
571
571
  it "returns gate values" do
572
- subject.gate_values.should eq(Flipper::GateValues.new({
573
- :actors => Set.new(["5"]),
574
- :groups => Set.new(["admins"]),
575
- :boolean => "true",
576
- :percentage_of_time => "50",
577
- :percentage_of_actors => "25",
578
- }))
572
+ expect(subject.gate_values).to eq(Flipper::GateValues.new({
573
+ :actors => Set.new(["5"]),
574
+ :groups => Set.new(["admins"]),
575
+ :boolean => "true",
576
+ :percentage_of_time => "50",
577
+ :percentage_of_actors => "25",
578
+ }))
579
579
  end
580
580
  end
581
581
  end
@@ -584,11 +584,11 @@ describe Flipper::Feature do
584
584
  context "with object that responds to flipper_id" do
585
585
  it "updates the gate values to include the actor" do
586
586
  actor = Struct.new(:flipper_id).new(5)
587
- subject.gate_values.actors.should be_empty
587
+ expect(subject.gate_values.actors).to be_empty
588
588
  subject.enable_actor(actor)
589
- subject.gate_values.actors.should eq(Set["5"])
589
+ expect(subject.gate_values.actors).to eq(Set["5"])
590
590
  subject.disable_actor(actor)
591
- subject.gate_values.actors.should be_empty
591
+ expect(subject.gate_values.actors).to be_empty
592
592
  end
593
593
  end
594
594
 
@@ -596,11 +596,11 @@ describe Flipper::Feature do
596
596
  it "updates the gate values to include the actor" do
597
597
  actor = Struct.new(:flipper_id).new(5)
598
598
  instance = Flipper::Types::Actor.wrap(actor)
599
- subject.gate_values.actors.should be_empty
599
+ expect(subject.gate_values.actors).to be_empty
600
600
  subject.enable_actor(instance)
601
- subject.gate_values.actors.should eq(Set["5"])
601
+ expect(subject.gate_values.actors).to eq(Set["5"])
602
602
  subject.disable_actor(instance)
603
- subject.gate_values.actors.should be_empty
603
+ expect(subject.gate_values.actors).to be_empty
604
604
  end
605
605
  end
606
606
  end
@@ -610,11 +610,11 @@ describe Flipper::Feature do
610
610
  it "updates the gate values to include the group" do
611
611
  actor = Struct.new(:flipper_id).new(5)
612
612
  group = Flipper.register(:five_only) { |actor| actor.flipper_id == 5 }
613
- subject.gate_values.groups.should be_empty
613
+ expect(subject.gate_values.groups).to be_empty
614
614
  subject.enable_group(:five_only)
615
- subject.gate_values.groups.should eq(Set["five_only"])
615
+ expect(subject.gate_values.groups).to eq(Set["five_only"])
616
616
  subject.disable_group(:five_only)
617
- subject.gate_values.groups.should be_empty
617
+ expect(subject.gate_values.groups).to be_empty
618
618
  end
619
619
  end
620
620
 
@@ -622,11 +622,11 @@ describe Flipper::Feature do
622
622
  it "updates the gate values to include the group" do
623
623
  actor = Struct.new(:flipper_id).new(5)
624
624
  group = Flipper.register(:five_only) { |actor| actor.flipper_id == 5 }
625
- subject.gate_values.groups.should be_empty
625
+ expect(subject.gate_values.groups).to be_empty
626
626
  subject.enable_group("five_only")
627
- subject.gate_values.groups.should eq(Set["five_only"])
627
+ expect(subject.gate_values.groups).to eq(Set["five_only"])
628
628
  subject.disable_group("five_only")
629
- subject.gate_values.groups.should be_empty
629
+ expect(subject.gate_values.groups).to be_empty
630
630
  end
631
631
  end
632
632
 
@@ -634,11 +634,11 @@ describe Flipper::Feature do
634
634
  it "updates the gate values for the group" do
635
635
  actor = Struct.new(:flipper_id).new(5)
636
636
  group = Flipper.register(:five_only) { |actor| actor.flipper_id == 5 }
637
- subject.gate_values.groups.should be_empty
637
+ expect(subject.gate_values.groups).to be_empty
638
638
  subject.enable_group(group)
639
- subject.gate_values.groups.should eq(Set["five_only"])
639
+ expect(subject.gate_values.groups).to eq(Set["five_only"])
640
640
  subject.disable_group(group)
641
- subject.gate_values.groups.should be_empty
641
+ expect(subject.gate_values.groups).to be_empty
642
642
  end
643
643
  end
644
644
  end
@@ -646,32 +646,32 @@ describe Flipper::Feature do
646
646
  describe "#enable_percentage_of_time/disable_percentage_of_time" do
647
647
  context "with integer" do
648
648
  it "updates the gate values" do
649
- subject.gate_values.percentage_of_time.should be(0)
649
+ expect(subject.gate_values.percentage_of_time).to be(0)
650
650
  subject.enable_percentage_of_time(56)
651
- subject.gate_values.percentage_of_time.should be(56)
651
+ expect(subject.gate_values.percentage_of_time).to be(56)
652
652
  subject.disable_percentage_of_time
653
- subject.gate_values.percentage_of_time.should be(0)
653
+ expect(subject.gate_values.percentage_of_time).to be(0)
654
654
  end
655
655
  end
656
656
 
657
657
  context "with string" do
658
658
  it "updates the gate values" do
659
- subject.gate_values.percentage_of_time.should be(0)
659
+ expect(subject.gate_values.percentage_of_time).to be(0)
660
660
  subject.enable_percentage_of_time("56")
661
- subject.gate_values.percentage_of_time.should be(56)
661
+ expect(subject.gate_values.percentage_of_time).to be(56)
662
662
  subject.disable_percentage_of_time
663
- subject.gate_values.percentage_of_time.should be(0)
663
+ expect(subject.gate_values.percentage_of_time).to be(0)
664
664
  end
665
665
  end
666
666
 
667
667
  context "with percentage of time instance" do
668
668
  it "updates the gate values" do
669
669
  percentage = Flipper::Types::PercentageOfTime.new(56)
670
- subject.gate_values.percentage_of_time.should be(0)
670
+ expect(subject.gate_values.percentage_of_time).to be(0)
671
671
  subject.enable_percentage_of_time(percentage)
672
- subject.gate_values.percentage_of_time.should be(56)
672
+ expect(subject.gate_values.percentage_of_time).to be(56)
673
673
  subject.disable_percentage_of_time
674
- subject.gate_values.percentage_of_time.should be(0)
674
+ expect(subject.gate_values.percentage_of_time).to be(0)
675
675
  end
676
676
  end
677
677
  end
@@ -679,32 +679,32 @@ describe Flipper::Feature do
679
679
  describe "#enable_percentage_of_actors/disable_percentage_of_actors" do
680
680
  context "with integer" do
681
681
  it "updates the gate values" do
682
- subject.gate_values.percentage_of_actors.should be(0)
682
+ expect(subject.gate_values.percentage_of_actors).to be(0)
683
683
  subject.enable_percentage_of_actors(56)
684
- subject.gate_values.percentage_of_actors.should be(56)
684
+ expect(subject.gate_values.percentage_of_actors).to be(56)
685
685
  subject.disable_percentage_of_actors
686
- subject.gate_values.percentage_of_actors.should be(0)
686
+ expect(subject.gate_values.percentage_of_actors).to be(0)
687
687
  end
688
688
  end
689
689
 
690
690
  context "with string" do
691
691
  it "updates the gate values" do
692
- subject.gate_values.percentage_of_actors.should be(0)
692
+ expect(subject.gate_values.percentage_of_actors).to be(0)
693
693
  subject.enable_percentage_of_actors("56")
694
- subject.gate_values.percentage_of_actors.should be(56)
694
+ expect(subject.gate_values.percentage_of_actors).to be(56)
695
695
  subject.disable_percentage_of_actors
696
- subject.gate_values.percentage_of_actors.should be(0)
696
+ expect(subject.gate_values.percentage_of_actors).to be(0)
697
697
  end
698
698
  end
699
699
 
700
700
  context "with percentage of actors instance" do
701
701
  it "updates the gate values" do
702
702
  percentage = Flipper::Types::PercentageOfActors.new(56)
703
- subject.gate_values.percentage_of_actors.should be(0)
703
+ expect(subject.gate_values.percentage_of_actors).to be(0)
704
704
  subject.enable_percentage_of_actors(percentage)
705
- subject.gate_values.percentage_of_actors.should be(56)
705
+ expect(subject.gate_values.percentage_of_actors).to be(56)
706
706
  subject.disable_percentage_of_actors
707
- subject.gate_values.percentage_of_actors.should be(0)
707
+ expect(subject.gate_values.percentage_of_actors).to be(0)
708
708
  end
709
709
  end
710
710
  end
@@ -716,29 +716,29 @@ describe Flipper::Feature do
716
716
  end
717
717
 
718
718
  it "can return enabled gates" do
719
- subject.enabled_gates.map(&:name).to_set.should eq(Set[
720
- :percentage_of_actors,
721
- :percentage_of_time,
722
- ])
719
+ expect(subject.enabled_gates.map(&:name).to_set).to eq(Set[
720
+ :percentage_of_actors,
721
+ :percentage_of_time,
722
+ ])
723
723
 
724
- subject.enabled_gate_names.to_set.should eq(Set[
725
- :percentage_of_actors,
726
- :percentage_of_time,
727
- ])
724
+ expect(subject.enabled_gate_names.to_set).to eq(Set[
725
+ :percentage_of_actors,
726
+ :percentage_of_time,
727
+ ])
728
728
  end
729
729
 
730
730
  it "can return disabled gates" do
731
- subject.disabled_gates.map(&:name).to_set.should eq(Set[
732
- :actor,
733
- :boolean,
734
- :group,
735
- ])
736
-
737
- subject.disabled_gate_names.to_set.should eq(Set[
738
- :actor,
739
- :boolean,
740
- :group,
741
- ])
731
+ expect(subject.disabled_gates.map(&:name).to_set).to eq(Set[
732
+ :actor,
733
+ :boolean,
734
+ :group,
735
+ ])
736
+
737
+ expect(subject.disabled_gate_names.to_set).to eq(Set[
738
+ :actor,
739
+ :boolean,
740
+ :group,
741
+ ])
742
742
  end
743
743
  end
744
744
  end