spec/flipper/dsl_spec.rb in flipper-0.6.3 vs spec/flipper/dsl_spec.rb in flipper-0.7.0.beta1
- old
+ new
@@ -3,12 +3,11 @@
require 'flipper/adapters/memory'
describe Flipper::DSL do
subject { Flipper::DSL.new(adapter) }
- let(:source) { {} }
- let(:adapter) { Flipper::Adapters::Memory.new(source) }
+ let(:adapter) { Flipper::Adapters::Memory.new }
describe "#initialize" do
it "sets adapter" do
dsl = described_class.new(adapter)
dsl.adapter.should_not be_nil
@@ -113,25 +112,25 @@
}.to raise_error(ArgumentError)
end
end
end
- describe "#random" do
+ describe "#time" do
before do
- @result = subject.random(5)
+ @result = subject.time(5)
end
- it "returns percentage of random" do
- @result.should be_instance_of(Flipper::Types::PercentageOfRandom)
+ it "returns percentage of time" do
+ @result.should be_instance_of(Flipper::Types::PercentageOfTime)
end
it "sets value" do
@result.value.should eq(5)
end
- it "is aliased to percentage_of_random" do
- @result.should eq(subject.percentage_of_random(@result.value))
+ it "is aliased to percentage_of_time" do
+ @result.should eq(subject.percentage_of_time(@result.value))
end
end
describe "#actors" do
before do
@@ -170,8 +169,68 @@
subject.features.each do |feature|
feature.should be_instance_of(Flipper::Feature)
end
subject.features.map(&:name).map(&:to_s).sort.should eq(['cache', 'search', 'stats'])
end
+ end
+ end
+
+ describe "#enable/disable" do
+ it "enables and disables the feature" do
+ subject[:stats].boolean_value.should eq(false)
+ subject.enable(:stats)
+ subject[:stats].boolean_value.should eq(true)
+
+ subject.disable(:stats)
+ subject[:stats].boolean_value.should eq(false)
+ end
+ end
+
+ describe "#enable_actor/disable_actor" do
+ it "enables and disables the feature for actor" do
+ actor = Struct.new(:flipper_id).new(5)
+
+ subject[:stats].actors_value.should be_empty
+ subject.enable_actor(:stats, actor)
+ subject[:stats].actors_value.should eq(Set["5"])
+
+ subject.disable_actor(:stats, actor)
+ subject[:stats].actors_value.should be_empty
+ end
+ end
+
+ describe "#enable_group/disable_group" do
+ it "enables and disables the feature for group" do
+ actor = Struct.new(:flipper_id).new(5)
+ group = Flipper.register(:fives) { |actor| actor.flipper_id == 5 }
+
+ subject[:stats].groups_value.should be_empty
+ subject.enable_group(:stats, :fives)
+ subject[:stats].groups_value.should eq(Set["fives"])
+
+ subject.disable_group(:stats, :fives)
+ subject[:stats].groups_value.should be_empty
+ end
+ end
+
+ describe "#enable_percentage_of_time/disable_percentage_of_time" do
+ it "enables and disables the feature for percentage of time" do
+ subject[:stats].percentage_of_time_value.should be(0)
+ subject.enable_percentage_of_time(:stats, 6)
+ subject[:stats].percentage_of_time_value.should be(6)
+
+ subject.disable_percentage_of_time(:stats)
+ subject[:stats].percentage_of_time_value.should be(0)
+ end
+ end
+
+ describe "#enable_percentage_of_actors/disable_percentage_of_actors" do
+ it "enables and disables the feature for percentage of time" do
+ subject[:stats].percentage_of_actors_value.should be(0)
+ subject.enable_percentage_of_actors(:stats, 6)
+ subject[:stats].percentage_of_actors_value.should be(6)
+
+ subject.disable_percentage_of_actors(:stats)
+ subject[:stats].percentage_of_actors_value.should be(0)
end
end
end