diff options
Diffstat (limited to 'spec/support/shared_examples/models/group_shared_examples.rb')
-rw-r--r-- | spec/support/shared_examples/models/group_shared_examples.rb | 45 |
1 files changed, 44 insertions, 1 deletions
diff --git a/spec/support/shared_examples/models/group_shared_examples.rb b/spec/support/shared_examples/models/group_shared_examples.rb index 9f3359ba4ab..6397e7a87d7 100644 --- a/spec/support/shared_examples/models/group_shared_examples.rb +++ b/spec/support/shared_examples/models/group_shared_examples.rb @@ -3,7 +3,6 @@ RSpec.shared_examples 'checks self and root ancestor feature flag' do let_it_be(:root_group) { create(:group) } let_it_be(:group) { create(:group, parent: root_group) } - let_it_be(:project) { create(:project, group: group) } subject { group.public_send(feature_flag_method) } @@ -41,3 +40,47 @@ RSpec.shared_examples 'checks self and root ancestor feature flag' do it { is_expected.to be_truthy } end end + +RSpec.shared_examples 'checks self (project) and root ancestor feature flag' do + let_it_be(:root_group) { create(:group) } + let_it_be(:group) { create(:group, parent: root_group) } + let_it_be(:project) { create(:project, group: group) } + + subject { project.public_send(feature_flag_method) } + + context 'when FF is enabled for the root group' do + before do + stub_feature_flags(feature_flag => root_group) + end + + it { is_expected.to be_truthy } + end + + context 'when FF is enabled for the group' do + before do + stub_feature_flags(feature_flag => group) + end + + it { is_expected.to be_truthy } + end + + context 'when FF is enabled for the project' do + before do + stub_feature_flags(feature_flag => project) + end + + it { is_expected.to be_truthy } + end + + context 'when FF is disabled globally' do + before do + stub_feature_flags(feature_flag => false) + end + + it { is_expected.to be_falsey } + end + + context 'when FF is enabled globally' do + it { is_expected.to be_truthy } + end +end |