diff options
author | Luke Duncalfe <lduncalfe@gitlab.com> | 2019-05-17 18:36:52 +0000 |
---|---|---|
committer | Achilleas Pipinellis <axil@gitlab.com> | 2019-05-17 18:36:52 +0000 |
commit | db7dabea674d30c170ab22b43efd86a5d91ccdfc (patch) | |
tree | 57487e36bc39a5d0f0d120d772ef2b48aad19fe5 /doc/development/testing_guide/best_practices.md | |
parent | 8739c0095c999e8d2e49a7f96aef7ef6ec73ebe6 (diff) | |
download | gitlab-ce-db7dabea674d30c170ab22b43efd86a5d91ccdfc.tar.gz |
Link to testing guide for feature flag spec info
In order for there to be a single source of truth.
Diffstat (limited to 'doc/development/testing_guide/best_practices.md')
-rw-r--r-- | doc/development/testing_guide/best_practices.md | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/doc/development/testing_guide/best_practices.md b/doc/development/testing_guide/best_practices.md index e41148360f2..63ec9755462 100644 --- a/doc/development/testing_guide/best_practices.md +++ b/doc/development/testing_guide/best_practices.md @@ -240,6 +240,36 @@ it 'is overdue' do end ``` +### Feature flags in tests + +All feature flags are stubbed to be enabled by default in our Ruby-based +tests. + +To disable a feature flag in a test, use the `stub_feature_flags` +helper. For example, to globally disable the `ci_live_trace` feature +flag in a test: + +```ruby +stub_feature_flags(ci_live_trace: false) + +Feature.enabled?(:ci_live_trace) # => false +``` + +If you wish to set up a test where a feature flag is disabled for some +actors and not others, you can specify this in options passed to the +helper. For example, to disable the `ci_live_trace` feature flag for a +specifc project: + +```ruby +project1, project2 = build_list(:project, 2) + +# Feature will only be disabled for project1 +stub_feature_flags(ci_live_trace: { enabled: false, thing: project1 }) + +Feature.enabled?(:ci_live_trace, project1) # => false +Feature.enabled?(:ci_live_trace, project2) # => true +``` + ### Pristine test environments The code exercised by a single GitLab test may access and modify many items of |