Skip to content

Commit dce8135

Browse files
committed
Add test cases for the '--experimental' flag
1 parent dc611dd commit dce8135

File tree

1 file changed

+26
-1
lines changed

1 file changed

+26
-1
lines changed

deps/rabbitmq_cli/test/ctl/enable_feature_flag_test.exs

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@ defmodule EnableFeatureFlagCommandTest do
1010

1111
@command RabbitMQ.CLI.Ctl.Commands.EnableFeatureFlagCommand
1212
@feature_flag :ff_from_enable_ff_testsuite
13+
@experimental_flag :ff_from_enable_ff_testsuite_experimental
14+
@usage_exit_code RabbitMQ.CLI.Core.ExitCodes.exit_usage()
1315

1416
setup_all do
1517
RabbitMQ.CLI.Core.Distribution.start()
@@ -22,6 +24,11 @@ defmodule EnableFeatureFlagCommandTest do
2224
desc: ~c"My feature flag",
2325
provided_by: :EnableFeatureFlagCommandTest,
2426
stability: :stable
27+
},
28+
@experimental_flag => %{
29+
desc: ~c"An **experimental** feature!",
30+
provided_by: :EnableFeatureFlagCommandTest,
31+
stability: :experimental
2532
}
2633
}
2734

@@ -35,7 +42,9 @@ defmodule EnableFeatureFlagCommandTest do
3542

3643
{
3744
:ok,
38-
opts: %{node: get_rabbit_hostname(), experimental: false}, feature_flag: @feature_flag
45+
opts: %{node: get_rabbit_hostname(), experimental: false},
46+
feature_flag: @feature_flag,
47+
experimental_flag: @experimental_flag
3948
}
4049
end
4150

@@ -63,6 +72,16 @@ defmodule EnableFeatureFlagCommandTest do
6372
assert match?({:badrpc, _}, @command.run(["na"], opts))
6473
end
6574

75+
test "run: enabling an experimental flag requires '--experimental'", context do
76+
experimental_flag = Atom.to_string(context[:experimental_flag])
77+
assert match?(
78+
{:error, @usage_exit_code, _},
79+
@command.run([experimental_flag], context[:opts])
80+
)
81+
opts = Map.put(context[:opts], :experimental, true)
82+
assert @command.run([experimental_flag], opts) == :ok
83+
end
84+
6685
test "run: enabling the same feature flag twice is idempotent", context do
6786
enable_feature_flag(context[:feature_flag])
6887
assert @command.run([Atom.to_string(context[:feature_flag])], context[:opts]) == :ok
@@ -75,6 +94,12 @@ defmodule EnableFeatureFlagCommandTest do
7594
assert list_feature_flags(:enabled) |> Map.has_key?(context[:feature_flag])
7695
end
7796

97+
test "run: enabling all feature flags with '--experimental' returns an error", context do
98+
enable_feature_flag(context[:feature_flag])
99+
opts = Map.put(context[:opts], :experimental, true)
100+
assert match?({:error, @usage_exit_code, _}, @command.run(["all"], opts))
101+
end
102+
78103
test "banner", context do
79104
assert @command.banner([context[:feature_flag]], context[:opts]) =~
80105
~r/Enabling feature flag \"#{context[:feature_flag]}\" \.\.\./

0 commit comments

Comments
 (0)