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