From acecffd93fe37db44871b2f3702508acaf78c108 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gast=C3=B3n=20Fournier?= Date: Tue, 3 Sep 2024 12:06:58 +0200 Subject: [PATCH] fix: force languages in cypress browser for tests (#8049) To fix this we had to create a free trial account on cypress and enable the recording of the test. That way we found out the issue was with a locale: ![image (38)](https://github.com/user-attachments/assets/db2fad23-6fec-47c0-8c6f-a93f3e4e4c4c) Probably, this works well locally because our local machines do have a default locale, but probably we don't have one when running in CI, and millify library is causing the tests to fail specifically at this line: https://github.com/Unleash/unleash/blob/363911c4a1ce94dd467a950ec84ccdc9a3ec7d75/frontend/src/component/common/AvatarGroup/AvatarGroup.tsx#L89 (validated [here](https://github.com/Unleash/unleash/pull/8040/files#diff-afc857890da2221bd34feed0ff45dd7745ff32fb0b27055214cbe69896d5311dL89)). Unfortunately, upgrading millify didn't help, but downgrading to v5 (which doesn't support locales), solve the issue at the cost of not having the up-to-date library: https://github.com/Unleash/unleash/pull/8048 I believe the issue is related to this locale `c` reported here: https://github.com/cypress-io/cypress/issues/7890#issuecomment-2105991364 because only after overriding the languages this worked --- .github/workflows/build_frontend_prs.yml | 1 + frontend/cypress/global.d.ts | 2 +- .../cypress/integration/feature/feature.spec.ts | 15 ++++----------- frontend/cypress/support/commands.ts | 4 ++++ 4 files changed, 10 insertions(+), 12 deletions(-) diff --git a/.github/workflows/build_frontend_prs.yml b/.github/workflows/build_frontend_prs.yml index 8c0e3780347c..cbdf61e9c8f6 100644 --- a/.github/workflows/build_frontend_prs.yml +++ b/.github/workflows/build_frontend_prs.yml @@ -4,6 +4,7 @@ on: pull_request: paths: - frontend/** + - .github/workflows/**frontend** jobs: build: diff --git a/frontend/cypress/global.d.ts b/frontend/cypress/global.d.ts index fa6ef0867114..b1180ed914be 100644 --- a/frontend/cypress/global.d.ts +++ b/frontend/cypress/global.d.ts @@ -55,7 +55,7 @@ declare namespace Cypress { // STRATEGY addUserIdStrategyToFeature_UI( featureName: string, - projectName?: string, + projectName: string, ): Chainable; addFlexibleRolloutStrategyToFeature_UI( options: AddFlexibleRolloutStrategyOptions, diff --git a/frontend/cypress/integration/feature/feature.spec.ts b/frontend/cypress/integration/feature/feature.spec.ts index b14f22508e7c..d65c017b93d8 100644 --- a/frontend/cypress/integration/feature/feature.spec.ts +++ b/frontend/cypress/integration/feature/feature.spec.ts @@ -60,17 +60,10 @@ describe('feature', () => { cy.addFlexibleRolloutStrategyToFeature_UI({ featureToggleName, project: projectName, - }).then(() => { - cy.updateFlexibleRolloutStrategy_UI( - featureToggleName, - projectName, - ).then(() => - cy.deleteFeatureStrategy_UI( - featureToggleName, - false, - projectName, - ), - ); }); + + cy.updateFlexibleRolloutStrategy_UI(featureToggleName, projectName); + + cy.deleteFeatureStrategy_UI(featureToggleName, false, projectName); }); }); diff --git a/frontend/cypress/support/commands.ts b/frontend/cypress/support/commands.ts index 3664358146f9..741fd4314ed4 100644 --- a/frontend/cypress/support/commands.ts +++ b/frontend/cypress/support/commands.ts @@ -26,6 +26,10 @@ import { //@ts-ignore } from './API'; +Cypress.on('window:before:load', (window) => { + Object.defineProperty(window.navigator, 'language', { value: 'en' }); + Object.defineProperty(window.navigator, 'languages', { value: ['en'] }); +}); Cypress.Commands.add('runBefore', runBefore); Cypress.Commands.add('login_UI', login_UI); Cypress.Commands.add('createSegment_UI', createSegment_UI);