From 7fdc9af66710d037f602d21ef6a812a8b54bbd9e Mon Sep 17 00:00:00 2001 From: "XITASO\\pawel.baran" Date: Thu, 30 Jan 2025 12:45:33 +0100 Subject: [PATCH] test(e2e-login): e2e login tests added to cypress --- cypress.config.ts | 1 + cypress/e2e/loginKeycloak.spec.js | 4 ++-- cypress/support/commands.ts | 9 ++++++--- docker-compose/compose.test.yml | 15 +++++++++++++-- 4 files changed, 22 insertions(+), 7 deletions(-) diff --git a/cypress.config.ts b/cypress.config.ts index 484176b7..7cd4f9c4 100644 --- a/cypress.config.ts +++ b/cypress.config.ts @@ -37,5 +37,6 @@ export default defineConfig({ TEST_ADMIN_USER_PASSWORD: process.env.TEST_ADMIN_USER_PASSWORD, TEST_USER_LOGIN: process.env.TEST_USER_LOGIN, TEST_USER_PASSWORD: process.env.TEST_USER_PASSWORD, + KEYCLOAK_ISSUER: process.env.KEYCLOAK_ISSUER, }, }); diff --git a/cypress/e2e/loginKeycloak.spec.js b/cypress/e2e/loginKeycloak.spec.js index cd3107e4..e72cb833 100644 --- a/cypress/e2e/loginKeycloak.spec.js +++ b/cypress/e2e/loginKeycloak.spec.js @@ -20,7 +20,7 @@ describe('Login Keycloak user roles', function () { cy.keycloakLogin(adminTestUser.login, adminTestUser.password); cy.getByTestId('header-burgermenu').click(); - cy.getByTestId('user-label').should('have.text', 'test'); + cy.getByTestId('user-label').should('have.text', 'admin@test.com'); cy.getByTestId('admin-icon').should('exist'); cy.getByTestId('login-button').should('be.not.exist'); cy.keycloakLogout(); @@ -38,7 +38,7 @@ describe('Login Keycloak user roles', function () { cy.keycloakLogin(testUser.login, testUser.password); cy.getByTestId('header-burgermenu').click(); - cy.getByTestId('user-label').should('have.text', 'test_user'); + cy.getByTestId('user-label').should('have.text', 'user@test.com'); cy.getByTestId('user-icon').should('exist'); cy.getByTestId('login-button').should('be.not.exist'); cy.keycloakLogout(); diff --git a/cypress/support/commands.ts b/cypress/support/commands.ts index 74761ad3..ed0baca8 100644 --- a/cypress/support/commands.ts +++ b/cypress/support/commands.ts @@ -184,9 +184,12 @@ Cypress.Commands.add('deleteThumbnailFromAas', (aasId: string) => { Cypress.Commands.add('keycloakLogin', (login: string, password: string) => { cy.getByTestId('header-burgermenu').click(); cy.getByTestId('login-button').click(); - cy.get('#username').type(login); - cy.get('#password').type(password, { log: false }); - cy.get('#kc-login').click(); + cy.origin(Cypress.env('KEYCLOAK_ISSUER'), { args: { login, password } }, ({ login, password }) => { + cy.get('#username').invoke('focus').type(login); + cy.get('#password').invoke('focus').type(password, { log: false }); + cy.get('#kc-login').invoke('focus').click(); + }); + cy.get('button').click(); }); Cypress.Commands.add('keycloakLogout', () => { diff --git a/docker-compose/compose.test.yml b/docker-compose/compose.test.yml index 38e6a0de..48aeeaab 100644 --- a/docker-compose/compose.test.yml +++ b/docker-compose/compose.test.yml @@ -1,7 +1,7 @@ services: cypress-test: container_name: cypress-test - profiles: ['', 'tests'] + profiles: [ '', 'tests' ] build: dockerfile: cypress.dockerfile environment: @@ -12,7 +12,12 @@ services: CYPRESS_AAS_DISCOVERY_API_URL: 'http://mnestix-api:5064/discovery' MNESTIX_BACKEND_API_KEY: ${MNESTIX_BACKEND_API_KEY:-verySecureApiKey} ELECTRON_ENABLE_LOGGING: 1 - SPLIT: ${SPLIT:-0} + TEST_ADMIN_USER_LOGIN: ${TEST_ADMIN_USER_LOGIN:-test_admin} + TEST_ADMIN_USER_PASSWORD: ${TEST_ADMIN_USER_PASSWORD:-test_admin} + TEST_USER_LOGIN: ${TEST_USER_LOGIN:-test_user} + TEST_USER_PASSWORD: ${TEST_USER_PASSWORD:-test_user} + KEYCLOAK_ISSUER: 'https://mnestix-keycloak.azurewebsites.net' + SPLIT: ${SPLIT:-1} SPLIT_INDEX: ${SPLIT_INDEX:-0} volumes: - ./cypress-artifacts/screenshots:/cypress_Tests/cypress/screenshots @@ -31,3 +36,9 @@ services: SUBMODEL_REPO_API_URL: 'http://mnestix-api:5064/repo' DISCOVERY_API_URL: 'http://mnestix-api:5064/discovery' MNESTIX_BACKEND_API_URL: 'http://mnestix-api:5064' + AUTHENTICATION_FEATURE_FLAG: 'true' + NEXTAUTH_URL: 'http://mnestix-browser:3000/' + KEYCLOAK_ENABLED: 'true' + KEYCLOAK_CLIENT_ID: 'mnestix-cypress-e2e-client' + KEYCLOAK_ISSUER: 'https://mnestix-keycloak.azurewebsites.net' + KEYCLOAK_REALM: 'Mnestix' \ No newline at end of file