1
0
mirror of https://github.com/Unleash/unleash.git synced 2024-12-22 19:07:54 +01:00
unleash.unleash/frontend/cypress
Nuno Góis ca5c03ed17
test: fix feature e2e test by checking flag name in a td instead of url (#8863)
https://linear.app/unleash/issue/2-3028/fix-create-feature-flag-e2e-test

Fixes our failing [create feature e2e
test](https://github.com/Unleash/unleash/actions/runs/12027120576/job/33527490303?pr=8843).

We were looking for the feature flag name in the URL, not the DOM.
Previously, whenever we created a new feature flag, this would
automatically redirect us to that flag's page. This is no longer the
case if you use the "Create flag" button you see in the onboarding
header, which is the one the test is now using.

I agree it makes sense not to redirect in this case, but the test should
be adapted accordingly, and instead look for the feature flag name in
the table.
2024-11-26 16:13:30 +00:00
..
fixtures
integration test: fix feature e2e test by checking flag name in a td instead of url (#8863) 2024-11-26 16:13:30 +00:00
oss/feature chore: rename toggle to flag #2 (#7097) 2024-05-22 08:20:11 +03:00
support chore: flag overview page redesign - environments (#8683) 2024-11-08 09:56:46 +00:00
global.d.ts test: skip vercel toolbar in e2e tests (#8273) 2024-09-26 12:53:31 +01:00
README.md chore: refactor Cypress tests (#3445) 2023-04-04 11:46:28 +03:00
tsconfig.json chore: refactor Cypress tests (#3445) 2023-04-04 11:46:28 +03:00

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

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)
        );
    });
});