Skip to content
Snippets Groups Projects
Commit db7dabea authored by Luke Duncalfe's avatar Luke Duncalfe Committed by Achilleas Pipinellis
Browse files

Link to testing guide for feature flag spec info

In order for there to be a single source of truth.
parent 8739c009
No related branches found
No related tags found
No related merge requests found
Loading
Loading
@@ -108,11 +108,11 @@ so we make sure behavior under feature flag doesn't go untested in some non-spec
contexts.
 
Whenever a feature flag is present, make sure to test _both_ states of the
feature flag. You can stub a feature flag as follows:
feature flag.
 
```ruby
stub_feature_flags(my_feature_flag: false)
```
See the
[testing guide](testing_guide/best_practices.html#feature-flags-in-tests)
for information and examples on how to stub feature flags in tests.
 
## Enabling a feature flag (in development)
 
Loading
Loading
Loading
Loading
@@ -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
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment