combined_menu flag feature specs [RUN ALL RSPEC] [RUN AS-IF-FOSS]
- Requirements (issue)
- Tasks (epic)
- Full Context Spike MR (permanent draft)
- All MR parts ...
What does this MR do?
Adds feature spec coverage for features to be added/modified as part of Combine Projects, Groups, and More into one menu (issue).
- Wraps existing specs which fail with flag on in a shared example.
- Introduced two contexts for flag on and flag off which use these examples.
- Marked as pending all examples which fail with the feature flag on. These will be updated and made to pass as the features are implemented in follow-on MRs.
Workflow for how we are using pending examples
- All existing specs which fail with the flag on are wrapped in a "shared" context, and executed from two new contexts, "on" and "off", with the flag on and off, respectively.
- All failing examples in these specs are marked as pending from the "on" context. Examples which are not failing are not marked pending, but are still included in the "on" context to provide full coverage of both flag states.
- As the features are implemented and the specs begin passing, there are two options:
- If the example passes unmodified with the flag on, then ensure it is unpended in the "shared" context.
- If the example needs modifications to pass, then duplicate it in the "on" and "off" context, and make the necessary changes in the "on" context to make it pass with the new implementation.
- Once the feature is fully implemented, no pending examples should remain.
- When the feature flag is removed:
- The "off" context can be deleted,
- The "on" context can be combined with the "shared" context at the top level, and the flag nesting context removed.
Performance note
Please note that this results in temporarily duplicating our test execution which will add some test time. We are willing to accept this because:
- It provides full coverage of the on/off cases.
- It is temporary and easy to undo when we remove the feature flag.
Does this MR meet the acceptance criteria?
Conformity
-
📋 Does this MR need a changelog?-
I have not included a changelog entry because Does not have user facing changes
.
-
-
Documentation (if required) -
Code review guidelines -
Merge request performance guidelines -
Style guides -
Database guides -
Separation of EE specific content
Edited by Chad Woolley