spec/flipper/feature_spec.rb in flipper-0.2.0 vs spec/flipper/feature_spec.rb in flipper-0.2.1
- old
+ new
@@ -13,12 +13,12 @@
let(:group_key) { Flipper::Gates::Group::Key }
let(:admin_group) { Flipper.group(:admins) }
let(:dev_group) { Flipper.group(:devs) }
- let(:admin_thing) { double 'Non Flipper Thing', :admin? => true, :dev? => false }
- let(:dev_thing) { double 'Non Flipper Thing', :admin? => false, :dev? => true }
+ let(:admin_thing) { double 'Non Flipper Thing', :identifier => 1, :admin? => true, :dev? => false }
+ let(:dev_thing) { double 'Non Flipper Thing', :identifier => 10, :admin? => false, :dev? => true }
let(:pitt) { Flipper::Types::Actor.new(1) }
let(:clooney) { Flipper::Types::Actor.new(10) }
let(:five_percent_of_actors) { Flipper::Types::PercentageOfActors.new(5) }
@@ -60,10 +60,18 @@
it "does not enable feature for non flipper thing in other group" do
subject.enabled?(dev_thing).should be_false
end
+ it "enables feature for flipper actor in group" do
+ subject.enabled?(Flipper::Types::Actor.new(admin_thing)).should be_true
+ end
+
+ it "does not enable for flipper actor not in group" do
+ subject.enabled?(Flipper::Types::Actor.new(dev_thing)).should be_false
+ end
+
it "does not enable feature for all" do
subject.enabled?.should be_false
end
end
@@ -151,10 +159,18 @@
end
it "does not disable feature for non flipper thing in other groups" do
subject.enabled?(dev_thing).should be_true
end
+
+ it "disables feature for flipper actor in group" do
+ subject.enabled?(Flipper::Types::Actor.new(admin_thing)).should be_false
+ end
+
+ it "does not disable feature for flipper actor in other groups" do
+ subject.enabled?(Flipper::Types::Actor.new(dev_thing)).should be_true
+ end
end
context "with an actor" do
before do
adapter.set_add("#{subject.name}#{Flipper::Gate::Separator}#{actor_key}", pitt.identifier)
@@ -225,9 +241,25 @@
adapter.write("#{subject.name}#{Flipper::Gate::Separator}#{boolean_key}", true)
end
it "returns true" do
subject.enabled?.should be_true
+ end
+ end
+
+ context "for actor in enabled group" do
+ before do
+ adapter.set_add("#{subject.name}#{Flipper::Gate::Separator}#{group_key}", admin_group.name)
+ end
+
+ it "returns true" do
+ subject.enabled?(Flipper::Types::Actor.new(admin_thing)).should be_true
+ end
+ end
+
+ context "for actor in disbled group" do
+ it "returns false" do
+ subject.enabled?(Flipper::Types::Actor.new(dev_thing)).should be_false
end
end
context "for enabled actor" do
before do