spec/flipper/dsl_spec.rb in flipper-1.0.0 vs spec/flipper/dsl_spec.rb in flipper-1.1.0
- old
+ new
@@ -134,10 +134,22 @@
expect(subject.group(:admins)).to be(@group)
end
end
end
+ describe '#expression' do
+ it "returns nil if feature has no expression" do
+ expect(subject.expression(:stats)).to be(nil)
+ end
+
+ it "returns expression if feature has expression" do
+ expression = Flipper.property(:plan).eq("basic")
+ subject[:stats].enable_expression expression
+ expect(subject.expression(:stats)).to eq(expression)
+ end
+ end
+
describe '#features' do
context 'with no features enabled/disabled' do
it 'defaults to empty set' do
expect(subject.features).to eq(Set.new)
end
@@ -166,9 +178,36 @@
subject.enable(:stats)
expect(subject[:stats].boolean_value).to eq(true)
subject.disable(:stats)
expect(subject[:stats].boolean_value).to eq(false)
+ end
+ end
+
+ describe '#enable_expression/disable_expression' do
+ it 'enables and disables the feature for the expression' do
+ expression = Flipper.property(:plan).eq("basic")
+
+ expect(subject[:stats].expression).to be(nil)
+ subject.enable_expression(:stats, expression)
+ expect(subject[:stats].expression).to eq(expression)
+
+ subject.disable_expression(:stats)
+ expect(subject[:stats].expression).to be(nil)
+ end
+ end
+
+ describe '#add_expression/remove_expression' do
+ it 'enables and disables the feature for the expression' do
+ expression = Flipper.property(:plan).eq("basic")
+ any_expression = Flipper.any(expression)
+
+ expect(subject[:stats].expression).to be(nil)
+ subject.add_expression(:stats, any_expression)
+ expect(subject[:stats].expression).to eq(any_expression)
+
+ subject.remove_expression(:stats, expression)
+ expect(subject[:stats].expression).to eq(Flipper.any)
end
end
describe '#enable_actor/disable_actor' do
it 'enables and disables the feature for actor' do