## Unleash Behavioural tests ### Add common commands to Cypress - `global.d.ts` is where we extend Cypress types - `API.ts` contains api requests for common actions (great place for cleanup actions) - `UI.ts` contains common functions for UI operations - `commands.ts` is the place to map the functions to a cypress command ### Test Format Ideally each test should manage its own data. Avoid using `after` and `afterEach` hooks for cleaning up. According to Cypress docs, there is no guarantee that the functions will run Suggested Format: - `prepare` - `when` - `then` - `clean` #### Passing (returned) parameters around ```ts it('can add, update and delete a gradual rollout strategy to the development environment', async () => { cy.addFlexibleRolloutStrategyToFeature_UI({ featureToggleName, }).then(value => { strategyId = value; cy.updateFlexibleRolloutStrategy_UI(featureToggleName, strategyId).then( () => cy.deleteFeatureStrategy_UI(featureToggleName, strategyId) ); }); }); ```