mirror of
https://github.com/Unleash/unleash.git
synced 2024-12-28 00:06:53 +01:00
75 lines
2.6 KiB
TypeScript
75 lines
2.6 KiB
TypeScript
///<reference path="../../global.d.ts" />
|
|
|
|
describe('feature', () => {
|
|
const randomId = String(Math.random()).split('.')[1];
|
|
const featureToggleName = `unleash-e2e-${randomId}`;
|
|
const projectName = `unleash-e2e-project-${randomId}`;
|
|
|
|
before(() => {
|
|
cy.runBefore();
|
|
cy.login_UI();
|
|
cy.createProject_API(projectName);
|
|
});
|
|
|
|
after(() => {
|
|
cy.on('uncaught:exception', (err) => {
|
|
if (
|
|
err.message.includes(
|
|
'ResizeObserver loop completed with undelivered notifications',
|
|
)
|
|
) {
|
|
console.log(
|
|
'Ignored an uncaught resize observer error:',
|
|
err.message,
|
|
);
|
|
// ignore resize observer errors
|
|
// https://developer.mozilla.org/en-US/docs/Web/API/ResizeObserver#observation_errors
|
|
// returning false here prevents Cypress from failing the test
|
|
return false;
|
|
}
|
|
});
|
|
|
|
cy.deleteFeature_API(featureToggleName, projectName);
|
|
cy.deleteProject_API(projectName);
|
|
});
|
|
|
|
beforeEach(() => {
|
|
cy.login_UI();
|
|
cy.visit('/features');
|
|
});
|
|
|
|
it('can create a feature flag', () => {
|
|
cy.createFeature_UI(featureToggleName, true, projectName);
|
|
cy.url().should('include', featureToggleName);
|
|
});
|
|
|
|
it('gives an error if a toggle exists with the same name', () => {
|
|
cy.createFeature_UI(featureToggleName, false, projectName);
|
|
cy.get("[data-testid='INPUT_ERROR_TEXT']").contains(
|
|
'A flag with that name already exists',
|
|
);
|
|
});
|
|
|
|
it('gives an error if a toggle name is url unsafe', () => {
|
|
cy.createFeature_UI('featureToggleUnsafe####$#//', false, projectName);
|
|
cy.get("[data-testid='INPUT_ERROR_TEXT']").contains(
|
|
`"name" must be URL friendly`,
|
|
);
|
|
});
|
|
|
|
it(`can add a gradual rollout strategy to the development environment (${projectName} ${featureToggleName})`, () => {
|
|
cy.addFlexibleRolloutStrategyToFeature_UI({
|
|
featureToggleName,
|
|
project: projectName,
|
|
});
|
|
});
|
|
|
|
it(`can update a gradual rollout strategy to the development environment (${projectName} ${featureToggleName})`, () => {
|
|
cy.updateFlexibleRolloutStrategy_UI(featureToggleName, projectName);
|
|
});
|
|
|
|
it(`can delete a gradual rollout strategy to the development environment (${projectName} ${featureToggleName})`, () => {
|
|
cy.deleteFeatureStrategy_UI(featureToggleName, false, projectName);
|
|
});
|
|
});
|