diff --git a/.gitignore b/.gitignore index 671fb0fee4dba749bd6cb2b15d03422c8ea29976..b97206eaa9037206fb36f521f938d8c355afb4da 100644 --- a/.gitignore +++ b/.gitignore @@ -16,6 +16,8 @@ target/ # Client goofy-client/.vscode/ goofy-client/apps/coverage/ +goofy-client/node/* +goofy-client/temp/* .attach** -.factorypath \ No newline at end of file +.factorypath diff --git a/goofy-client/angular.json b/goofy-client/angular.json index 7d3d774bea4f7997a60e7edf1af771bcef6c8a2e..5f1d506b3b665e252c59633089bbac7e8e7f1d28 100644 --- a/goofy-client/angular.json +++ b/goofy-client/angular.json @@ -452,9 +452,10 @@ "e2e": { "builder": "@nrwl/cypress:cypress", "options": { - "cypressConfig": "apps/goofy-e2e/cypress.json", + "cypressConfig": "apps/goofy-e2e/cypress.config.ts", "tsConfig": "apps/goofy-e2e/tsconfig.e2e.json", - "devServerTarget": "goofy:serve" + "devServerTarget": "goofy:serve", + "testingType": "e2e" }, "configurations": { "production": { diff --git a/goofy-client/apps/goofy-e2e/Jenkinsfile b/goofy-client/apps/goofy-e2e/Jenkinsfile index cb5ffcccaa43c0efcc5a1946e6bf2c47e9d1545d..c25dede479bf24c9037d9c13d44f45abb864d9c3 100644 --- a/goofy-client/apps/goofy-e2e/Jenkinsfile +++ b/goofy-client/apps/goofy-e2e/Jenkinsfile @@ -190,15 +190,6 @@ pipeline { } } -// stage('Pausing to wait for ozg-operator') { -// when { -// expression { !SKIP_RUN } -// } -// steps { -// sleep(time: 3, unit: 'MINUTES') -// } -// } - stage('Run E2E-Tests') { when { expression { !SKIP_RUN } @@ -614,12 +605,13 @@ Void publishE2ETestResult(String reportFolder, String reportName) { } String runTests(String bezeichner, String reportFolder, Integer dbPort, String stageName) { - def configFile = generateCypressConfig(bezeichner, reportFolder, dbPort) + def config = generateCypressConfig(bezeichner, reportFolder, dbPort) + def spec = "apps/goofy-e2e/src/e2e/${reportFolder}" try { - dir("goofy-client") { - sh "npm run cypress:version" - sh "npm run cypress:ci-run --CONFIG_FILE=${configFile} --REPORT_FOLDER=${reportFolder}" + dir('goofy-client'){ + sh "npm run cypress:version" + sh "npm run cypress:ci-run --CONFIG=./${config} --REPORT_FOLDER=${reportFolder}" } } catch (Exception e) { printNpmDebugLog() @@ -658,35 +650,35 @@ String cutBranchNameForKeycloakRealm(String branchName, String stageName) { String generateCypressConfig(String bezeichner, String testFolder, Integer dbPort) { def namespace = generateNamespace(bezeichner) - def configName = "cypress-ci-"+testFolder+".json" + def configName = "cypress-ci-"+testFolder+".json" - dir('goofy-client/apps/goofy-e2e/'){ - def config = readJSON file: 'cypress-ci.json' + dir('goofy-client/apps/goofy-e2e/'){ + def config = readJSON file: 'cypress-ci.json' def plutoDatabaseSecret = getPlutoDatabaseSecret(namespace); def decodedPassword = decodeString(plutoDatabaseSecret.password); def parsablePassword = makePasswordUrlConform(decodedPassword); - config.baseUrl = "https://${bezeichner}.${env.CLUSTER_BASE_URL}" as String - config.env.dbUrl = "mongodb://${decodeString(plutoDatabaseSecret.username)}:${parsablePassword}@localhost:${dbPort}/admin?ssl=false&directConnection=true" as String - config.env.keycloakUrl = "https://${env.SSO_URL}/" as String - config.env.keycloakRealm = namespace as String - config.env.keycloakClient = "alfa" as String + config.baseUrl = "https://${bezeichner}.${env.CLUSTER_BASE_URL}" as String + config.env.dbUrl = "mongodb://${decodeString(plutoDatabaseSecret.username)}:${parsablePassword}@localhost:${dbPort}/admin?ssl=false&directConnection=true" as String + config.env.keycloakUrl = "https://${env.SSO_URL}/" as String + config.env.keycloakRealm = namespace as String config.env.sabineUuid = getKeycloakUuid(namespace, "sabine") as String - config.integrationFolder = "./src/integration/${testFolder}" as String - config.videosFolder = "./reports/${testFolder}/videos" as String - config.screenshotsFolder = "./reports/${testFolder}/screenshots" as String - config.reporterOptions.reportDir = "./reports/${testFolder}/mochawesome-report" as String + config.videosFolder = "./reports/${testFolder}/videos" as String + config.screenshotsFolder = "./reports/${testFolder}/screenshots" as String + config.reporterOptions.reportDir = "./reports/${testFolder}/mochawesome-report" as String - config.env.put("search", getElasticsearchEnv(namespace)) - config.env.put("userManager", getUserManagerEnv(namespace, dbPort)) + config.specPattern = "src/e2e/${testFolder}/**/*.cy.{js,jsx,ts,tsx}" as String - writeJSON file: configName, json: config + config.env.put("search", getElasticsearchEnv(namespace)) + config.env.put("userManager", getUserManagerEnv(namespace, dbPort)) - sh "cat ${configName}" - } + writeJSON file: configName, json: config + + sh "cat ${configName}" + } - return configName + return "cypress-ci-"+testFolder+".config.ts" } String makePasswordUrlConform(String password) { diff --git a/goofy-client/apps/goofy-e2e/cypress-ci-einheitlicher-ansprechpartner.config.ts b/goofy-client/apps/goofy-e2e/cypress-ci-einheitlicher-ansprechpartner.config.ts new file mode 100644 index 0000000000000000000000000000000000000000..5ef91724365a1ed66f94db34d0c762d8b1b3b2b7 --- /dev/null +++ b/goofy-client/apps/goofy-e2e/cypress-ci-einheitlicher-ansprechpartner.config.ts @@ -0,0 +1,16 @@ +import { nxE2EPreset } from '@nrwl/cypress/plugins/cypress-preset'; +import { defineConfig } from 'cypress'; + +//Cypress config is generated by JenkinsFile +const cypressConfig = require('./cypress-ci-einheitlicher-ansprechpartner.json'); +const cypressEvents = require('./src/support/cypress-tasks.ts'); + +export default defineConfig({ + e2e: { + ...nxE2EPreset(__dirname), + ...cypressConfig, + setupNodeEvents(on, config) { + return cypressEvents(on, config); + } + }, +}); \ No newline at end of file diff --git a/goofy-client/apps/goofy-e2e/cypress-ci-main-tests.config.ts b/goofy-client/apps/goofy-e2e/cypress-ci-main-tests.config.ts new file mode 100644 index 0000000000000000000000000000000000000000..c3b17666b23e7ef150bfc88da510380739f7f49a --- /dev/null +++ b/goofy-client/apps/goofy-e2e/cypress-ci-main-tests.config.ts @@ -0,0 +1,16 @@ +import { nxE2EPreset } from '@nrwl/cypress/plugins/cypress-preset'; +import { defineConfig } from 'cypress'; + +//Cypress config is generated by JenkinsFile +const cypressConfig = require('./cypress-ci-main-tests.json'); +const cypressEvents = require('./src/support/cypress-tasks.ts'); + +export default defineConfig({ + e2e: { + ...nxE2EPreset(__dirname), + ...cypressConfig, + setupNodeEvents(on, config) { + return cypressEvents(on, config); + } + }, +}); \ No newline at end of file diff --git a/goofy-client/apps/goofy-e2e/cypress-ci.json b/goofy-client/apps/goofy-e2e/cypress-ci.json index cbcd4bfb981c2d6443c05fe4925c05646c1c9325..084a420ec79ba1ddf02340bfe17f62db94a8b985 100644 --- a/goofy-client/apps/goofy-e2e/cypress-ci.json +++ b/goofy-client/apps/goofy-e2e/cypress-ci.json @@ -1,30 +1,22 @@ { - "baseUrl": "https://e2e.dev.by.ozg-cloud.de", "env": { - "dbUrl": "mongodb+srv://pluto-database-user:XnHhfznNWg65NNd@pluto-database-svc.sh-e2e-dev.svc.cluster.local/admin?ssl=false", "database": "pluto-database", - "keycloakRealm": "by-e2e-local-dev", - "keycloakUrl": "https://sso.dev.by.ozg-cloud.de/", "keycloakClient": "alfa" }, "fileServerFolder": ".", "fixturesFolder": "./src/fixtures", - "integrationFolder": "./src/integration", "modifyObstructiveCode": false, - "pluginsFile": "./src/plugins/index", - "supportFile": "./src/support/index.ts", "video": true, - "videosFolder": "./reports/videos", - "screenshotsFolder": "./reports/screenshots", "chromeWebSecurity": false, "reporter": "../../node_modules/cypress-mochawesome-reporter", "defaultCommandTimeout": 10000, + "supportFile": "./src/support/e2e.ts", + "testIsolation": false, "reporterOptions": { "html": false, "json": true, "quite": true, - "reportDir": "./reports/mochawesome-report", "reportFilename": "report", "overwrite": false } -} \ No newline at end of file +} diff --git a/goofy-client/apps/goofy-e2e/cypress.json b/goofy-client/apps/goofy-e2e/cypress.config.json similarity index 84% rename from goofy-client/apps/goofy-e2e/cypress.json rename to goofy-client/apps/goofy-e2e/cypress.config.json index 3b0a26d3b4eff62ab9c59c604f6363b12979da51..2eaa211f04655dea29923a5a9228dc5a98dcc19b 100644 --- a/goofy-client/apps/goofy-e2e/cypress.json +++ b/goofy-client/apps/goofy-e2e/cypress.config.json @@ -20,16 +20,15 @@ }, "fileServerFolder": ".", "fixturesFolder": "./src/fixtures", - "integrationFolder": "./src/integration", - "modifyObstructiveCode": false, - "pluginsFile": "./src/plugins/index", - "supportFile": "./src/support/index.ts", - "video": true, + "video": false, "videosFolder": "./reports/videos", "screenshotsFolder": "./reports/screenshots", "chromeWebSecurity": false, "reporter": "../../node_modules/cypress-mochawesome-reporter", "defaultCommandTimeout": 10000, + "specPattern": "src/e2e/**/*.cy.{js,jsx,ts,tsx}", + "supportFile": "src/support/e2e.ts", + "testIsolation": false, "reporterOptions": { "html": false, "json": true, @@ -37,4 +36,4 @@ "reportFilename": "report", "overwrite": true } -} \ No newline at end of file +} diff --git a/goofy-client/apps/goofy-e2e/cypress.config.ts b/goofy-client/apps/goofy-e2e/cypress.config.ts new file mode 100644 index 0000000000000000000000000000000000000000..9a49dde39416be544323860b89f605015d8f615a --- /dev/null +++ b/goofy-client/apps/goofy-e2e/cypress.config.ts @@ -0,0 +1,15 @@ +import { nxE2EPreset } from '@nrwl/cypress/plugins/cypress-preset'; +import { defineConfig } from 'cypress'; + +const cypressConfig = require('./cypress.config.json'); +const cypressEvents = require('./src/support/cypress-tasks.ts'); + +export default defineConfig({ + e2e: { + ...nxE2EPreset(__dirname), + ...cypressConfig, + setupNodeEvents(on, config) { + return cypressEvents(on, config); + } + }, +}); \ No newline at end of file diff --git a/goofy-client/apps/goofy-e2e/src/integration/einheitlicher-ansprechpartner/navigation/navigation.e2e-spec.ts b/goofy-client/apps/goofy-e2e/src/e2e/einheitlicher-ansprechpartner/navigation/navigation.cy.ts similarity index 100% rename from goofy-client/apps/goofy-e2e/src/integration/einheitlicher-ansprechpartner/navigation/navigation.e2e-spec.ts rename to goofy-client/apps/goofy-e2e/src/e2e/einheitlicher-ansprechpartner/navigation/navigation.cy.ts diff --git a/goofy-client/apps/goofy-e2e/src/integration/einheitlicher-ansprechpartner/vorgang-detail/vorgang-abschliessen.e2e-spec.ts b/goofy-client/apps/goofy-e2e/src/e2e/einheitlicher-ansprechpartner/vorgang-detail/vorgang-abschliessen.cy.ts similarity index 100% rename from goofy-client/apps/goofy-e2e/src/integration/einheitlicher-ansprechpartner/vorgang-detail/vorgang-abschliessen.e2e-spec.ts rename to goofy-client/apps/goofy-e2e/src/e2e/einheitlicher-ansprechpartner/vorgang-detail/vorgang-abschliessen.cy.ts diff --git a/goofy-client/apps/goofy-e2e/src/integration/einheitlicher-ansprechpartner/vorgang-detail/vorgang-forward-fail.e2e-spec.ts b/goofy-client/apps/goofy-e2e/src/e2e/einheitlicher-ansprechpartner/vorgang-detail/vorgang-forward-fail.cy.ts similarity index 100% rename from goofy-client/apps/goofy-e2e/src/integration/einheitlicher-ansprechpartner/vorgang-detail/vorgang-forward-fail.e2e-spec.ts rename to goofy-client/apps/goofy-e2e/src/e2e/einheitlicher-ansprechpartner/vorgang-detail/vorgang-forward-fail.cy.ts diff --git a/goofy-client/apps/goofy-e2e/src/integration/einheitlicher-ansprechpartner/vorgang-detail/vorgang-forward.e2e-spec.ts b/goofy-client/apps/goofy-e2e/src/e2e/einheitlicher-ansprechpartner/vorgang-detail/vorgang-forward.cy.ts similarity index 100% rename from goofy-client/apps/goofy-e2e/src/integration/einheitlicher-ansprechpartner/vorgang-detail/vorgang-forward.e2e-spec.ts rename to goofy-client/apps/goofy-e2e/src/e2e/einheitlicher-ansprechpartner/vorgang-detail/vorgang-forward.cy.ts diff --git a/goofy-client/apps/goofy-e2e/src/integration/einheitlicher-ansprechpartner/vorgang-detail/vorgang-forwarding-failed-e2e-spec.ts b/goofy-client/apps/goofy-e2e/src/e2e/einheitlicher-ansprechpartner/vorgang-detail/vorgang-forwarding-failed-cy.ts similarity index 100% rename from goofy-client/apps/goofy-e2e/src/integration/einheitlicher-ansprechpartner/vorgang-detail/vorgang-forwarding-failed-e2e-spec.ts rename to goofy-client/apps/goofy-e2e/src/e2e/einheitlicher-ansprechpartner/vorgang-detail/vorgang-forwarding-failed-cy.ts diff --git a/goofy-client/apps/goofy-e2e/src/integration/einheitlicher-ansprechpartner/vorgang-detail/vorgang-loeschen-anfordern.e2e-spec.ts b/goofy-client/apps/goofy-e2e/src/e2e/einheitlicher-ansprechpartner/vorgang-detail/vorgang-loeschen-anfordern.cy.ts similarity index 100% rename from goofy-client/apps/goofy-e2e/src/integration/einheitlicher-ansprechpartner/vorgang-detail/vorgang-loeschen-anfordern.e2e-spec.ts rename to goofy-client/apps/goofy-e2e/src/e2e/einheitlicher-ansprechpartner/vorgang-detail/vorgang-loeschen-anfordern.cy.ts diff --git a/goofy-client/apps/goofy-e2e/src/integration/einheitlicher-ansprechpartner/vorgang-detail/vorgang-verwerfen.ea.e2e-spec.ts b/goofy-client/apps/goofy-e2e/src/e2e/einheitlicher-ansprechpartner/vorgang-detail/vorgang-verwerfen.ea.cy.ts similarity index 100% rename from goofy-client/apps/goofy-e2e/src/integration/einheitlicher-ansprechpartner/vorgang-detail/vorgang-verwerfen.ea.e2e-spec.ts rename to goofy-client/apps/goofy-e2e/src/e2e/einheitlicher-ansprechpartner/vorgang-detail/vorgang-verwerfen.ea.cy.ts diff --git a/goofy-client/apps/goofy-e2e/src/integration/einheitlicher-ansprechpartner/vorgang-detail/vorgang-wiedereroeffnen.ea.e2e-spec.ts b/goofy-client/apps/goofy-e2e/src/e2e/einheitlicher-ansprechpartner/vorgang-detail/vorgang-wiedereroeffnen.ea.cy.ts similarity index 100% rename from goofy-client/apps/goofy-e2e/src/integration/einheitlicher-ansprechpartner/vorgang-detail/vorgang-wiedereroeffnen.ea.e2e-spec.ts rename to goofy-client/apps/goofy-e2e/src/e2e/einheitlicher-ansprechpartner/vorgang-detail/vorgang-wiedereroeffnen.ea.cy.ts diff --git a/goofy-client/apps/goofy-e2e/src/integration/einheitlicher-ansprechpartner/vorgang-detail/vorgang-zurueckholen.ea.e2e-spec.ts b/goofy-client/apps/goofy-e2e/src/e2e/einheitlicher-ansprechpartner/vorgang-detail/vorgang-zurueckholen.ea.cy.ts similarity index 100% rename from goofy-client/apps/goofy-e2e/src/integration/einheitlicher-ansprechpartner/vorgang-detail/vorgang-zurueckholen.ea.e2e-spec.ts rename to goofy-client/apps/goofy-e2e/src/e2e/einheitlicher-ansprechpartner/vorgang-detail/vorgang-zurueckholen.ea.cy.ts diff --git a/goofy-client/apps/goofy-e2e/src/integration/einheitlicher-ansprechpartner/vorgang-list/vorgang-list-ea.search.e2e-spec.ts b/goofy-client/apps/goofy-e2e/src/e2e/einheitlicher-ansprechpartner/vorgang-list/vorgang-list-ea.search.cy.ts similarity index 100% rename from goofy-client/apps/goofy-e2e/src/integration/einheitlicher-ansprechpartner/vorgang-list/vorgang-list-ea.search.e2e-spec.ts rename to goofy-client/apps/goofy-e2e/src/e2e/einheitlicher-ansprechpartner/vorgang-list/vorgang-list-ea.search.cy.ts diff --git a/goofy-client/apps/goofy-e2e/src/integration/main-tests/accessibility/vorgang-list.spec-e2e.ts b/goofy-client/apps/goofy-e2e/src/e2e/main-tests/accessibility/vorgang-list.cy.ts similarity index 100% rename from goofy-client/apps/goofy-e2e/src/integration/main-tests/accessibility/vorgang-list.spec-e2e.ts rename to goofy-client/apps/goofy-e2e/src/e2e/main-tests/accessibility/vorgang-list.cy.ts diff --git a/goofy-client/apps/goofy-e2e/src/integration/main-tests/app/buildinfo.e2e-spec.ts b/goofy-client/apps/goofy-e2e/src/e2e/main-tests/app/buildinfo.cy.ts similarity index 100% rename from goofy-client/apps/goofy-e2e/src/integration/main-tests/app/buildinfo.e2e-spec.ts rename to goofy-client/apps/goofy-e2e/src/e2e/main-tests/app/buildinfo.cy.ts diff --git a/goofy-client/apps/goofy-e2e/src/integration/main-tests/app/login-logout.e2e-spec.ts b/goofy-client/apps/goofy-e2e/src/e2e/main-tests/app/login-logout.cy.ts similarity index 100% rename from goofy-client/apps/goofy-e2e/src/integration/main-tests/app/login-logout.e2e-spec.ts rename to goofy-client/apps/goofy-e2e/src/e2e/main-tests/app/login-logout.cy.ts diff --git a/goofy-client/apps/goofy-e2e/src/integration/main-tests/hint/no-organisations-einheit-id.e2e-spec.ts b/goofy-client/apps/goofy-e2e/src/e2e/main-tests/hint/no-organisations-einheit-id.cy.ts similarity index 100% rename from goofy-client/apps/goofy-e2e/src/integration/main-tests/hint/no-organisations-einheit-id.e2e-spec.ts rename to goofy-client/apps/goofy-e2e/src/e2e/main-tests/hint/no-organisations-einheit-id.cy.ts diff --git a/goofy-client/apps/goofy-e2e/src/integration/main-tests/historie/historie.e2e-spec.ts b/goofy-client/apps/goofy-e2e/src/e2e/main-tests/historie/historie.cy.ts similarity index 100% rename from goofy-client/apps/goofy-e2e/src/integration/main-tests/historie/historie.e2e-spec.ts rename to goofy-client/apps/goofy-e2e/src/e2e/main-tests/historie/historie.cy.ts diff --git a/goofy-client/apps/goofy-e2e/src/integration/main-tests/interceptor/interceptor-connection-timout.e2e-spec.ts b/goofy-client/apps/goofy-e2e/src/e2e/main-tests/interceptor/interceptor-connection-timout.cy.ts similarity index 100% rename from goofy-client/apps/goofy-e2e/src/integration/main-tests/interceptor/interceptor-connection-timout.e2e-spec.ts rename to goofy-client/apps/goofy-e2e/src/e2e/main-tests/interceptor/interceptor-connection-timout.cy.ts diff --git a/goofy-client/apps/goofy-e2e/src/integration/main-tests/interceptor/interceptor-forbidden.e2e-spec.ts b/goofy-client/apps/goofy-e2e/src/e2e/main-tests/interceptor/interceptor-forbidden.cy.ts similarity index 100% rename from goofy-client/apps/goofy-e2e/src/integration/main-tests/interceptor/interceptor-forbidden.e2e-spec.ts rename to goofy-client/apps/goofy-e2e/src/e2e/main-tests/interceptor/interceptor-forbidden.cy.ts diff --git a/goofy-client/apps/goofy-e2e/src/integration/main-tests/interceptor/interceptor-server-error.e2e-spec.ts b/goofy-client/apps/goofy-e2e/src/e2e/main-tests/interceptor/interceptor-server-error.cy.ts similarity index 98% rename from goofy-client/apps/goofy-e2e/src/integration/main-tests/interceptor/interceptor-server-error.e2e-spec.ts rename to goofy-client/apps/goofy-e2e/src/e2e/main-tests/interceptor/interceptor-server-error.cy.ts index bbac0d37ed2ce91377bcd6da2b872ca4e0de9f6a..e57681f1ff5a596a9f12b28123f2e9ffe69f8531 100644 --- a/goofy-client/apps/goofy-e2e/src/integration/main-tests/interceptor/interceptor-server-error.e2e-spec.ts +++ b/goofy-client/apps/goofy-e2e/src/e2e/main-tests/interceptor/interceptor-server-error.cy.ts @@ -65,7 +65,6 @@ describe('Interceptor Server Error', () => { it('should show page', () => { vorgangList.getListItem(vorgang.name).getRoot().click(); - waitForSpinnerToDisappear(); waitOfInterceptor(interceptor).then(interception => { assert(interception.response.statusCode, statusCode.toString()); diff --git a/goofy-client/apps/goofy-e2e/src/integration/main-tests/interceptor/interceptor-unauthorized.e2e-spec.ts b/goofy-client/apps/goofy-e2e/src/e2e/main-tests/interceptor/interceptor-unauthorized.cy.ts similarity index 100% rename from goofy-client/apps/goofy-e2e/src/integration/main-tests/interceptor/interceptor-unauthorized.e2e-spec.ts rename to goofy-client/apps/goofy-e2e/src/e2e/main-tests/interceptor/interceptor-unauthorized.cy.ts diff --git a/goofy-client/apps/goofy-e2e/src/integration/main-tests/kommentar-attachment/kommentar-attachment.e2e-spec.ts b/goofy-client/apps/goofy-e2e/src/e2e/main-tests/kommentar-attachment/kommentar-attachment.cy.ts similarity index 100% rename from goofy-client/apps/goofy-e2e/src/integration/main-tests/kommentar-attachment/kommentar-attachment.e2e-spec.ts rename to goofy-client/apps/goofy-e2e/src/e2e/main-tests/kommentar-attachment/kommentar-attachment.cy.ts diff --git a/goofy-client/apps/goofy-e2e/src/integration/main-tests/kommentar/kommentar.e2e-spec.ts b/goofy-client/apps/goofy-e2e/src/e2e/main-tests/kommentar/kommentar.cy.ts similarity index 100% rename from goofy-client/apps/goofy-e2e/src/integration/main-tests/kommentar/kommentar.e2e-spec.ts rename to goofy-client/apps/goofy-e2e/src/e2e/main-tests/kommentar/kommentar.cy.ts diff --git a/goofy-client/apps/goofy-e2e/src/integration/main-tests/loesch-anforderung/endgueltig-loeschen.e2e-spec.ts b/goofy-client/apps/goofy-e2e/src/e2e/main-tests/loesch-anforderung/endgueltig-loeschen.cy.ts similarity index 96% rename from goofy-client/apps/goofy-e2e/src/integration/main-tests/loesch-anforderung/endgueltig-loeschen.e2e-spec.ts rename to goofy-client/apps/goofy-e2e/src/e2e/main-tests/loesch-anforderung/endgueltig-loeschen.cy.ts index f3588c671c47d3c7029f50e2f54434dce166ae86..18eba64a91139e1f089a1ce399f8729e5f95ba9b 100644 --- a/goofy-client/apps/goofy-e2e/src/integration/main-tests/loesch-anforderung/endgueltig-loeschen.e2e-spec.ts +++ b/goofy-client/apps/goofy-e2e/src/e2e/main-tests/loesch-anforderung/endgueltig-loeschen.cy.ts @@ -105,7 +105,8 @@ describe('Vorgang endgültig löschen', () => { }) }) - describe('Endgültig Löschen (ludwig löscht den Vorgang für den die sabine die Löschanforderung gestellt hat)', () => { + // TODO Warum exakt derselbe Test nochmal, nur mit objectIds[2] anstelle objectIds[1]? + describe.skip('Endgültig Löschen (ludwig löscht den Vorgang für den die sabine die Löschanforderung gestellt hat)', () => { before(() => { initVorgang(vorgangZuLoeschen); diff --git a/goofy-client/apps/goofy-e2e/src/integration/main-tests/loesch-anforderung/loesch-anforderung-zuruecknehmen.e2e-spec.ts b/goofy-client/apps/goofy-e2e/src/e2e/main-tests/loesch-anforderung/loesch-anforderung-zuruecknehmen.cy.ts similarity index 100% rename from goofy-client/apps/goofy-e2e/src/integration/main-tests/loesch-anforderung/loesch-anforderung-zuruecknehmen.e2e-spec.ts rename to goofy-client/apps/goofy-e2e/src/e2e/main-tests/loesch-anforderung/loesch-anforderung-zuruecknehmen.cy.ts diff --git a/goofy-client/apps/goofy-e2e/src/integration/main-tests/loesch-anforderung/loeschen-anfordern.e2e-spec.ts b/goofy-client/apps/goofy-e2e/src/e2e/main-tests/loesch-anforderung/loeschen-anfordern.cy.ts similarity index 98% rename from goofy-client/apps/goofy-e2e/src/integration/main-tests/loesch-anforderung/loeschen-anfordern.e2e-spec.ts rename to goofy-client/apps/goofy-e2e/src/e2e/main-tests/loesch-anforderung/loeschen-anfordern.cy.ts index 508bb26e33a246af5c956c52ce98f64d3c80dec9..36a11e3c361ee9bc887f01c49d229cf9dfa09a86 100644 --- a/goofy-client/apps/goofy-e2e/src/integration/main-tests/loesch-anforderung/loeschen-anfordern.e2e-spec.ts +++ b/goofy-client/apps/goofy-e2e/src/e2e/main-tests/loesch-anforderung/loeschen-anfordern.cy.ts @@ -80,275 +80,275 @@ describe('Vorgang Löschen anfordern', () => { before(() => { initVorgaenge([vorgangAbgeschlossenLoeschenAnfordern, vorgangAbgeschlossenLoeschenAnfordernRevoke, vorgangVerworfenLoeschenAnfordern, vorgangVerworfenLoeschenAnfordernRevoke]); initVorgangAttachedItem([wiedervorlageAttachedItem]); - + loginAsSabine(); - + waitForSpinnerToDisappear(); exist(vorgangList.getRoot()); }) - + after(() => { dropCollections(); }) - + describe('Abgeschlossen: löschen anfordern', () => { - + it('Open Vorgang-Detail-Page', () => { vorgangList.getListItem(vorgangAbgeschlossenLoeschenAnfordern.name).getRoot().click(); waitForSpinnerToDisappear(); - + exist(vorgangPage.getVorgangDetailHeader().getRoot()); }) - + describe('by button', () => { - + it('should have status Abgeschlossen', () => { haveText(vorgangPage.getVorgangDetailHeader().getStatus(), vorgangStatusLabelE2E[vorgangAbgeschlossenLoeschenAnfordern.status]); }) - + it('should click Löschen anfordern button', () => { vorgangFormularButtons.getLoeschenAnfordernButton().click(); waitForSpinnerToDisappear(); }) - + it('should show snackBar message', () => { exist(snackBar.getCloseButton()); contains(snackBar.getMessage(), VorgangMessagesE2E.LOESCHEN_ANFORDERN) }) - + it('should close snackBar', () => { snackBar.getCloseButton().click(); - + notExist(snackBar.getMessage()); }) - + it('should have status zu Löschen', () => { haveText(vorgangPage.getVorgangDetailHeader().getStatus(), vorgangStatusLabelE2E[VorgangStatusE2E.ZU_LOESCHEN]); }) - + it('should redirect Wiedervorlage link to Vorgang', () => { visitUrl(wiedervorlageUrl); - + exist(vorgangPage.getVorgangDetailHeader().getRoot()); }) - + it('should show snackBar message', () => { exist(snackBar.getCloseButton()); contains(snackBar.getMessage(), VorgangMessagesE2E.WIEDERVORLAGE_BEARBEITEN_NICHT_MOEGLICH) }) - + it('should close snackBar', () => { snackBar.getCloseButton().click(); - + notExist(snackBar.getMessage()); }) - + it('back to vorgang list', () => { vorgangPage.getSubnavigation().getBackButton().click(); waitForSpinnerToDisappear(); - + exist(vorgangList.getRoot()); }) - + it('should have status zu Löschen', () => { haveText(vorgangList.getListItem(vorgangAbgeschlossenLoeschenAnfordern.name).getStatus(), vorgangStatusLabelE2E[VorgangStatusE2E.ZU_LOESCHEN]); }) }) }) - + describe('Disable functions', () => { - + it('Open Vorgang-Detail-Page', () => { vorgangList.getListItem(vorgangAbgeschlossenLoeschenAnfordern.name).getRoot().click(); waitForSpinnerToDisappear(); - + exist(vorgangPage.getVorgangDetailHeader().getRoot()); }) - + it('should not have add comment button', () => { const kommentarContainer: KommentareInVorgangE2EComponent = vorgangPage.getKommentarContainer(); - + notExist(kommentarContainer.getHinzufuegenButton()); }) - + it('should disable edit comment', () => { const kommentarContainer: KommentareInVorgangE2EComponent = vorgangPage.getKommentarContainer(); - + notExist(kommentarContainer.getFormular()); }) - + it('should not have create postfach mail buttons', () => { const postfachMailContainer: PostfachMailE2EComponent = vorgangPage.getPostfachMailcontainer(); - + notExist(postfachMailContainer.getCreateButtonWithoutText()); notExist(postfachMailContainer.getCreateButtonWithText()); }) - + it('should not have add wiedervorlage button', () => { const createWiedervorlageButton = vorgangPage.getWiedervorlagenContainer().getCreateWiedervorlageButton(); - + notExist(createWiedervorlageButton); }) - + it('should disable open Wiedervorlage-Page link ', () => { const wiedervorlageInVorgang: WiedervorlageInVorgangE2EComponent = vorgangPage.getWiedervorlagenContainer().getWiedervorlage('Wiedervorlage'); - + notExist(wiedervorlageInVorgang.getLink()); }) - + it('should not have user assign button', () => { const userProfileContainer: UserProfileE2EComponent = vorgangPage.getVorgangDetailHeader().getUserContainer(); - + notExist(userProfileContainer.getRoot()); }) - + it('back to vorgang list', () => { vorgangPage.getSubnavigation().getBackButton().click(); waitForSpinnerToDisappear(); - + exist(vorgangList.getRoot()); }) - + }) - + describe('Abgeschlossen: löschen anfordern und rückgängig machen', () => { - + it('Open Vorgang-Detail-Page', () => { vorgangList.getListItem(vorgangAbgeschlossenLoeschenAnfordernRevoke.name).getRoot().click(); waitForSpinnerToDisappear(); - + exist(vorgangPage.getVorgangDetailHeader().getRoot()); }) - + describe('by icon-button', () => { - + it('should have status Abgeschlossen', () => { haveText(vorgangPage.getVorgangDetailHeader().getStatus(), vorgangStatusLabelE2E[vorgangAbgeschlossenLoeschenAnfordernRevoke.status]); }) - + it('should show snackBar message', () => { vorgangPage.getSubnavigation().getLoeschenAnfordernByIconButton().click(); waitForSpinnerToDisappear(); - + exist(snackBar.getCloseButton()); contains(snackBar.getMessage(), VorgangMessagesE2E.LOESCHEN_ANFORDERN); }) - + it('should close snackbar on revoke', () => { snackBar.getRevokeButton().click(); waitForSpinnerToDisappear(); - + notExist(snackBar.getMessage()); }) - + it('should show status Abgeschlossen', () => { notExist(vorgangPage.getProgressBar()); - + haveText(vorgangPage.getVorgangDetailHeader().getStatus(), vorgangStatusLabelE2E[VorgangStatusE2E.ABGESCHLOSSEN]); }) - + it('back to vorgang list', () => { vorgangPage.getSubnavigation().getBackButton().click(); waitForSpinnerToDisappear(); - + exist(vorgangList.getRoot()); }) - + it('should have status Abgeschlossen', () => { haveText(vorgangList.getListItem(vorgangAbgeschlossenLoeschenAnfordernRevoke.name).getStatus(), vorgangStatusLabelE2E[VorgangStatusE2E.ABGESCHLOSSEN]) }) }) }) - + describe('Verworfen: löschen anfordern', () => { - + it('Open Vorgang-Detail-Page', () => { vorgangList.getListItem(vorgangVerworfenLoeschenAnfordern.name).getRoot().click(); waitForSpinnerToDisappear(); - + exist(vorgangPage.getVorgangDetailHeader().getRoot()); }) - + describe('by button', () => { - + it('should have status Verworfen', () => { haveText(vorgangPage.getVorgangDetailHeader().getStatus(), vorgangStatusLabelE2E[vorgangVerworfenLoeschenAnfordern.status]); }) - + it('should show snackBar message', () => { vorgangFormularButtons.getLoeschenAnfordernButton().click(); waitForSpinnerToDisappear(); - + exist(snackBar.getCloseButton()); contains(snackBar.getMessage(), VorgangMessagesE2E.LOESCHEN_ANFORDERN) }) - + it('should close snackBar', () => { snackBar.getCloseButton().click(); - + notExist(snackBar.getMessage()); }) - + it('should have status zu Löschen', () => { haveText(vorgangPage.getVorgangDetailHeader().getStatus(), vorgangStatusLabelE2E[VorgangStatusE2E.ZU_LOESCHEN]); }) - + it('back to vorgang list', () => { vorgangPage.getSubnavigation().getBackButton().click(); waitForSpinnerToDisappear(); - + exist(vorgangList.getRoot()); }) - + it('should have status zu Löschen', () => { haveText(vorgangList.getListItem(vorgangVerworfenLoeschenAnfordern.name).getStatus(), vorgangStatusLabelE2E[VorgangStatusE2E.ZU_LOESCHEN]); }) }) }) - + describe('Verworfen: löschen anfordern und rückgängig machen', () => { - + it('Open Vorgang-Detail-Page', () => { vorgangList.getListItem(vorgangVerworfenLoeschenAnfordernRevoke.name).getRoot().click(); waitForSpinnerToDisappear(); - + exist(vorgangPage.getVorgangDetailHeader().getRoot()); }) - + describe('by icon-button', () => { - + it('should have status Verworfen', () => { haveText(vorgangPage.getVorgangDetailHeader().getStatus(), vorgangStatusLabelE2E[vorgangVerworfenLoeschenAnfordernRevoke.status]); }) - + it('should show snackBar message', () => { vorgangPage.getSubnavigation().getLoeschenAnfordernByIconButton().click(); waitForSpinnerToDisappear(); - + exist(snackBar.getCloseButton()); contains(snackBar.getMessage(), VorgangMessagesE2E.LOESCHEN_ANFORDERN); }) - + it('should close snackbar on revoke', () => { snackBar.getRevokeButton().click(); waitForSpinnerToDisappear(); - + notExist(snackBar.getMessage()); }) - + it('should show status Verworfen', () => { notExist(vorgangPage.getProgressBar()); - + haveText(vorgangPage.getVorgangDetailHeader().getStatus(), vorgangStatusLabelE2E[VorgangStatusE2E.VERWORFEN]); }) - + it('back to vorgang list', () => { vorgangPage.getSubnavigation().getBackButton().click(); waitForSpinnerToDisappear(); - + exist(vorgangList.getRoot()); }) - + it('should have status Verworfen', () => { haveText(vorgangList.getListItem(vorgangVerworfenLoeschenAnfordernRevoke.name).getStatus(), vorgangStatusLabelE2E[VorgangStatusE2E.VERWORFEN]) }) @@ -357,4 +357,4 @@ describe('Vorgang Löschen anfordern', () => { }) }); - + diff --git a/goofy-client/apps/goofy-e2e/src/integration/main-tests/navigation/navigation.e2e-spec.ts b/goofy-client/apps/goofy-e2e/src/e2e/main-tests/navigation/navigation.cy.ts similarity index 100% rename from goofy-client/apps/goofy-e2e/src/integration/main-tests/navigation/navigation.e2e-spec.ts rename to goofy-client/apps/goofy-e2e/src/e2e/main-tests/navigation/navigation.cy.ts diff --git a/goofy-client/apps/goofy-e2e/src/integration/main-tests/postfach-mail/postfach-mail-error.e2e-spec.ts b/goofy-client/apps/goofy-e2e/src/e2e/main-tests/postfach-mail/postfach-mail-error.cy.ts similarity index 100% rename from goofy-client/apps/goofy-e2e/src/integration/main-tests/postfach-mail/postfach-mail-error.e2e-spec.ts rename to goofy-client/apps/goofy-e2e/src/e2e/main-tests/postfach-mail/postfach-mail-error.cy.ts diff --git a/goofy-client/apps/goofy-e2e/src/integration/main-tests/postfach-mail/postfach-mail.e2e-spec.ts b/goofy-client/apps/goofy-e2e/src/e2e/main-tests/postfach-mail/postfach-mail.cy.ts similarity index 100% rename from goofy-client/apps/goofy-e2e/src/integration/main-tests/postfach-mail/postfach-mail.e2e-spec.ts rename to goofy-client/apps/goofy-e2e/src/e2e/main-tests/postfach-mail/postfach-mail.cy.ts diff --git a/goofy-client/apps/goofy-e2e/src/integration/main-tests/postfach-mail/postfach-mail.filtered-by-organisationseinheit.e2e-spec.ts b/goofy-client/apps/goofy-e2e/src/e2e/main-tests/postfach-mail/postfach-mail.filtered-by-organisationseinheit.cy.ts similarity index 100% rename from goofy-client/apps/goofy-e2e/src/integration/main-tests/postfach-mail/postfach-mail.filtered-by-organisationseinheit.e2e-spec.ts rename to goofy-client/apps/goofy-e2e/src/e2e/main-tests/postfach-mail/postfach-mail.filtered-by-organisationseinheit.cy.ts diff --git a/goofy-client/apps/goofy-e2e/src/integration/main-tests/postfach-mail/postfach-nachicht-reply-button.e2e-spec.ts b/goofy-client/apps/goofy-e2e/src/e2e/main-tests/postfach-mail/postfach-nachicht-reply-button.cy.ts similarity index 100% rename from goofy-client/apps/goofy-e2e/src/integration/main-tests/postfach-mail/postfach-nachicht-reply-button.e2e-spec.ts rename to goofy-client/apps/goofy-e2e/src/e2e/main-tests/postfach-mail/postfach-nachicht-reply-button.cy.ts diff --git a/goofy-client/apps/goofy-e2e/src/integration/main-tests/postfach-mail/postfach-nachricht-authorize-by-role.e2e-spec.ts b/goofy-client/apps/goofy-e2e/src/e2e/main-tests/postfach-mail/postfach-nachricht-authorize-by-role.cy.ts similarity index 100% rename from goofy-client/apps/goofy-e2e/src/integration/main-tests/postfach-mail/postfach-nachricht-authorize-by-role.e2e-spec.ts rename to goofy-client/apps/goofy-e2e/src/e2e/main-tests/postfach-mail/postfach-nachricht-authorize-by-role.cy.ts diff --git a/goofy-client/apps/goofy-e2e/src/integration/main-tests/postfach-mail/postfach-nachrichten.e2e-spec.ts b/goofy-client/apps/goofy-e2e/src/e2e/main-tests/postfach-mail/postfach-nachrichten.cy.ts similarity index 100% rename from goofy-client/apps/goofy-e2e/src/integration/main-tests/postfach-mail/postfach-nachrichten.e2e-spec.ts rename to goofy-client/apps/goofy-e2e/src/e2e/main-tests/postfach-mail/postfach-nachrichten.cy.ts diff --git a/goofy-client/apps/goofy-e2e/src/integration/main-tests/user-profile/user-profile-current-user-icon.e2e-spec.ts b/goofy-client/apps/goofy-e2e/src/e2e/main-tests/user-profile/user-profile-current-user-icon.cy.ts similarity index 100% rename from goofy-client/apps/goofy-e2e/src/integration/main-tests/user-profile/user-profile-current-user-icon.e2e-spec.ts rename to goofy-client/apps/goofy-e2e/src/e2e/main-tests/user-profile/user-profile-current-user-icon.cy.ts diff --git a/goofy-client/apps/goofy-e2e/src/integration/main-tests/user-profile/user-profile-icon-assign-unassign.e2e-spec.ts b/goofy-client/apps/goofy-e2e/src/e2e/main-tests/user-profile/user-profile-icon-assign-unassign.cy.ts similarity index 98% rename from goofy-client/apps/goofy-e2e/src/integration/main-tests/user-profile/user-profile-icon-assign-unassign.e2e-spec.ts rename to goofy-client/apps/goofy-e2e/src/e2e/main-tests/user-profile/user-profile-icon-assign-unassign.cy.ts index e267803ff8184d7680b35e73605a6cd5826aee49..4acfd38edd15da225ef10614c795af3357ebc5d3 100644 --- a/goofy-client/apps/goofy-e2e/src/integration/main-tests/user-profile/user-profile-icon-assign-unassign.e2e-spec.ts +++ b/goofy-client/apps/goofy-e2e/src/e2e/main-tests/user-profile/user-profile-icon-assign-unassign.cy.ts @@ -28,7 +28,7 @@ import { UserE2E } from '../../../model/user'; import { VorgangE2E } from '../../../model/vorgang'; import { MainPage, waitForSpinnerToDisappear, waitforSpinnerToAppear } from '../../../page-objects/main.po'; import { VorgangPage } from '../../../page-objects/vorgang.po'; -import { dropCollections } from '../../../support/cypress-helper'; +import { dropCollections, wait } from '../../../support/cypress-helper'; import { enter, exist, haveText, notExist } from '../../../support/cypress.util'; import { getUserDorothea, getUserManagerUserDorothea, getUserManagerUserSabine, getUserSabine, initUsermanagerUsers, loginAsSabine } from '../../../support/user-util'; import { createVorgang, initVorgang } from '../../../support/vorgang-util'; @@ -169,6 +169,7 @@ describe('User Profile im ausgewählten Vorgang', () => { it('should show assign icon', { defaultCommandTimeout: 30000 }, () => { waitForSpinnerToDisappear(); // TODO Hier muss aufs Verarbeiten im Backend gewartet werden - oder: wait(500) + wait(500); exist(userProfileContainer.getIconContainer().getAssignedIcon()); haveText(userProfileContainer.getIconContainer().getAssignedIcon(), userDorothea.initials) }) diff --git a/goofy-client/apps/goofy-e2e/src/integration/main-tests/user-profile/user-profile-icon-in-kommentar-error.e2e-spec.ts b/goofy-client/apps/goofy-e2e/src/e2e/main-tests/user-profile/user-profile-icon-in-kommentar-error.cy.ts similarity index 100% rename from goofy-client/apps/goofy-e2e/src/integration/main-tests/user-profile/user-profile-icon-in-kommentar-error.e2e-spec.ts rename to goofy-client/apps/goofy-e2e/src/e2e/main-tests/user-profile/user-profile-icon-in-kommentar-error.cy.ts diff --git a/goofy-client/apps/goofy-e2e/src/integration/main-tests/user-profile/user-profile-icon-in-postfach-nachricht-error.e2e-spec.ts b/goofy-client/apps/goofy-e2e/src/e2e/main-tests/user-profile/user-profile-icon-in-postfach-nachricht-error.cy.ts similarity index 100% rename from goofy-client/apps/goofy-e2e/src/integration/main-tests/user-profile/user-profile-icon-in-postfach-nachricht-error.e2e-spec.ts rename to goofy-client/apps/goofy-e2e/src/e2e/main-tests/user-profile/user-profile-icon-in-postfach-nachricht-error.cy.ts diff --git a/goofy-client/apps/goofy-e2e/src/integration/main-tests/user-profile/user-profile-icon-in-vorgang-error.e2e-spec.ts b/goofy-client/apps/goofy-e2e/src/e2e/main-tests/user-profile/user-profile-icon-in-vorgang-error.cy.ts similarity index 100% rename from goofy-client/apps/goofy-e2e/src/integration/main-tests/user-profile/user-profile-icon-in-vorgang-error.e2e-spec.ts rename to goofy-client/apps/goofy-e2e/src/e2e/main-tests/user-profile/user-profile-icon-in-vorgang-error.cy.ts diff --git a/goofy-client/apps/goofy-e2e/src/integration/main-tests/user-settings/user-settings.e2e-spec.ts b/goofy-client/apps/goofy-e2e/src/e2e/main-tests/user-settings/user-settings.cy.ts similarity index 100% rename from goofy-client/apps/goofy-e2e/src/integration/main-tests/user-settings/user-settings.e2e-spec.ts rename to goofy-client/apps/goofy-e2e/src/e2e/main-tests/user-settings/user-settings.cy.ts diff --git a/goofy-client/apps/goofy-e2e/src/integration/main-tests/vorgang-anhang/anhang-herunterladen.e2e-spec.ts b/goofy-client/apps/goofy-e2e/src/e2e/main-tests/vorgang-anhang/anhang-herunterladen.cy.ts similarity index 100% rename from goofy-client/apps/goofy-e2e/src/integration/main-tests/vorgang-anhang/anhang-herunterladen.e2e-spec.ts rename to goofy-client/apps/goofy-e2e/src/e2e/main-tests/vorgang-anhang/anhang-herunterladen.cy.ts diff --git a/goofy-client/apps/goofy-e2e/src/integration/main-tests/vorgang-detailansicht/vorgang-abschliessen.e2e-spec.ts b/goofy-client/apps/goofy-e2e/src/e2e/main-tests/vorgang-detailansicht/vorgang-abschliessen.cy.ts similarity index 100% rename from goofy-client/apps/goofy-e2e/src/integration/main-tests/vorgang-detailansicht/vorgang-abschliessen.e2e-spec.ts rename to goofy-client/apps/goofy-e2e/src/e2e/main-tests/vorgang-detailansicht/vorgang-abschliessen.cy.ts diff --git a/goofy-client/apps/goofy-e2e/src/integration/main-tests/vorgang-detailansicht/vorgang-annehmen.e2e-spec.ts b/goofy-client/apps/goofy-e2e/src/e2e/main-tests/vorgang-detailansicht/vorgang-annehmen.cy.ts similarity index 100% rename from goofy-client/apps/goofy-e2e/src/integration/main-tests/vorgang-detailansicht/vorgang-annehmen.e2e-spec.ts rename to goofy-client/apps/goofy-e2e/src/e2e/main-tests/vorgang-detailansicht/vorgang-annehmen.cy.ts diff --git a/goofy-client/apps/goofy-e2e/src/integration/main-tests/vorgang-detailansicht/vorgang-bearbeiten.e2e-spec.ts b/goofy-client/apps/goofy-e2e/src/e2e/main-tests/vorgang-detailansicht/vorgang-bearbeiten.cy.ts similarity index 100% rename from goofy-client/apps/goofy-e2e/src/integration/main-tests/vorgang-detailansicht/vorgang-bearbeiten.e2e-spec.ts rename to goofy-client/apps/goofy-e2e/src/e2e/main-tests/vorgang-detailansicht/vorgang-bearbeiten.cy.ts diff --git a/goofy-client/apps/goofy-e2e/src/integration/main-tests/vorgang-detailansicht/vorgang-bescheiden.e2e-spec.ts b/goofy-client/apps/goofy-e2e/src/e2e/main-tests/vorgang-detailansicht/vorgang-bescheiden.cy.ts similarity index 100% rename from goofy-client/apps/goofy-e2e/src/integration/main-tests/vorgang-detailansicht/vorgang-bescheiden.e2e-spec.ts rename to goofy-client/apps/goofy-e2e/src/e2e/main-tests/vorgang-detailansicht/vorgang-bescheiden.cy.ts diff --git a/goofy-client/apps/goofy-e2e/src/integration/main-tests/vorgang-detailansicht/vorgang-detailansicht-by-role.e2e-spec.ts b/goofy-client/apps/goofy-e2e/src/e2e/main-tests/vorgang-detailansicht/vorgang-detailansicht-by-role.cy.ts similarity index 100% rename from goofy-client/apps/goofy-e2e/src/integration/main-tests/vorgang-detailansicht/vorgang-detailansicht-by-role.e2e-spec.ts rename to goofy-client/apps/goofy-e2e/src/e2e/main-tests/vorgang-detailansicht/vorgang-detailansicht-by-role.cy.ts diff --git a/goofy-client/apps/goofy-e2e/src/integration/main-tests/vorgang-detailansicht/vorgang-detailansicht-formdata.e2e-spec.ts b/goofy-client/apps/goofy-e2e/src/e2e/main-tests/vorgang-detailansicht/vorgang-detailansicht-formdata.cy.ts similarity index 100% rename from goofy-client/apps/goofy-e2e/src/integration/main-tests/vorgang-detailansicht/vorgang-detailansicht-formdata.e2e-spec.ts rename to goofy-client/apps/goofy-e2e/src/e2e/main-tests/vorgang-detailansicht/vorgang-detailansicht-formdata.cy.ts diff --git a/goofy-client/apps/goofy-e2e/src/integration/main-tests/vorgang-detailansicht/vorgang-detailansicht.authorize-by-role.e2e-spec.ts b/goofy-client/apps/goofy-e2e/src/e2e/main-tests/vorgang-detailansicht/vorgang-detailansicht.authorize-by-role.cy.ts similarity index 100% rename from goofy-client/apps/goofy-e2e/src/integration/main-tests/vorgang-detailansicht/vorgang-detailansicht.authorize-by-role.e2e-spec.ts rename to goofy-client/apps/goofy-e2e/src/e2e/main-tests/vorgang-detailansicht/vorgang-detailansicht.authorize-by-role.cy.ts diff --git a/goofy-client/apps/goofy-e2e/src/integration/main-tests/vorgang-detailansicht/vorgang-detailansicht.e2e-spec.ts b/goofy-client/apps/goofy-e2e/src/e2e/main-tests/vorgang-detailansicht/vorgang-detailansicht.cy.ts similarity index 100% rename from goofy-client/apps/goofy-e2e/src/integration/main-tests/vorgang-detailansicht/vorgang-detailansicht.e2e-spec.ts rename to goofy-client/apps/goofy-e2e/src/e2e/main-tests/vorgang-detailansicht/vorgang-detailansicht.cy.ts diff --git a/goofy-client/apps/goofy-e2e/src/integration/main-tests/vorgang-detailansicht/vorgang-detailansicht.filtered-by-organisationseinheit.e2e-spec.ts b/goofy-client/apps/goofy-e2e/src/e2e/main-tests/vorgang-detailansicht/vorgang-detailansicht.filtered-by-organisationseinheit.cy.ts similarity index 100% rename from goofy-client/apps/goofy-e2e/src/integration/main-tests/vorgang-detailansicht/vorgang-detailansicht.filtered-by-organisationseinheit.e2e-spec.ts rename to goofy-client/apps/goofy-e2e/src/e2e/main-tests/vorgang-detailansicht/vorgang-detailansicht.filtered-by-organisationseinheit.cy.ts diff --git a/goofy-client/apps/goofy-e2e/src/integration/main-tests/vorgang-detailansicht/vorgang-exportieren.e2e-spec.ts b/goofy-client/apps/goofy-e2e/src/e2e/main-tests/vorgang-detailansicht/vorgang-exportieren.cy.ts similarity index 100% rename from goofy-client/apps/goofy-e2e/src/integration/main-tests/vorgang-detailansicht/vorgang-exportieren.e2e-spec.ts rename to goofy-client/apps/goofy-e2e/src/e2e/main-tests/vorgang-detailansicht/vorgang-exportieren.cy.ts diff --git a/goofy-client/apps/goofy-e2e/src/integration/main-tests/vorgang-detailansicht/vorgang-verwerfen.e2e-spec.ts b/goofy-client/apps/goofy-e2e/src/e2e/main-tests/vorgang-detailansicht/vorgang-verwerfen.cy.ts similarity index 100% rename from goofy-client/apps/goofy-e2e/src/integration/main-tests/vorgang-detailansicht/vorgang-verwerfen.e2e-spec.ts rename to goofy-client/apps/goofy-e2e/src/e2e/main-tests/vorgang-detailansicht/vorgang-verwerfen.cy.ts diff --git a/goofy-client/apps/goofy-e2e/src/integration/main-tests/vorgang-detailansicht/vorgang-wiedereroeffnen.e2e-spec.ts b/goofy-client/apps/goofy-e2e/src/e2e/main-tests/vorgang-detailansicht/vorgang-wiedereroeffnen.cy.ts similarity index 100% rename from goofy-client/apps/goofy-e2e/src/integration/main-tests/vorgang-detailansicht/vorgang-wiedereroeffnen.e2e-spec.ts rename to goofy-client/apps/goofy-e2e/src/e2e/main-tests/vorgang-detailansicht/vorgang-wiedereroeffnen.cy.ts diff --git a/goofy-client/apps/goofy-e2e/src/integration/main-tests/vorgang-detailansicht/vorgang-wiedervorlage-loading.e2e-spec.ts b/goofy-client/apps/goofy-e2e/src/e2e/main-tests/vorgang-detailansicht/vorgang-wiedervorlage-loading.cy.ts similarity index 100% rename from goofy-client/apps/goofy-e2e/src/integration/main-tests/vorgang-detailansicht/vorgang-wiedervorlage-loading.e2e-spec.ts rename to goofy-client/apps/goofy-e2e/src/e2e/main-tests/vorgang-detailansicht/vorgang-wiedervorlage-loading.cy.ts diff --git a/goofy-client/apps/goofy-e2e/src/integration/main-tests/vorgang-detailansicht/vorgang-zurueckholen.e2e-spec.ts b/goofy-client/apps/goofy-e2e/src/e2e/main-tests/vorgang-detailansicht/vorgang-zurueckholen.cy.ts similarity index 100% rename from goofy-client/apps/goofy-e2e/src/integration/main-tests/vorgang-detailansicht/vorgang-zurueckholen.e2e-spec.ts rename to goofy-client/apps/goofy-e2e/src/e2e/main-tests/vorgang-detailansicht/vorgang-zurueckholen.cy.ts diff --git a/goofy-client/apps/goofy-e2e/src/integration/main-tests/vorgang-detailansicht/vorgang-zurueckstellen.e2e-spec.ts b/goofy-client/apps/goofy-e2e/src/e2e/main-tests/vorgang-detailansicht/vorgang-zurueckstellen.cy.ts similarity index 100% rename from goofy-client/apps/goofy-e2e/src/integration/main-tests/vorgang-detailansicht/vorgang-zurueckstellen.e2e-spec.ts rename to goofy-client/apps/goofy-e2e/src/e2e/main-tests/vorgang-detailansicht/vorgang-zurueckstellen.cy.ts diff --git a/goofy-client/apps/goofy-e2e/src/integration/main-tests/vorgang-list-wiedervorlage/vorgang-list-wiedervorlagen.e2e-spec.ts b/goofy-client/apps/goofy-e2e/src/e2e/main-tests/vorgang-list-wiedervorlage/vorgang-list-wiedervorlagen.cy.ts similarity index 100% rename from goofy-client/apps/goofy-e2e/src/integration/main-tests/vorgang-list-wiedervorlage/vorgang-list-wiedervorlagen.e2e-spec.ts rename to goofy-client/apps/goofy-e2e/src/e2e/main-tests/vorgang-list-wiedervorlage/vorgang-list-wiedervorlagen.cy.ts diff --git a/goofy-client/apps/goofy-e2e/src/integration/main-tests/vorgang-list/vorgang-list-pages.e2e-spec.ts b/goofy-client/apps/goofy-e2e/src/e2e/main-tests/vorgang-list/vorgang-list-pages.cy.ts similarity index 100% rename from goofy-client/apps/goofy-e2e/src/integration/main-tests/vorgang-list/vorgang-list-pages.e2e-spec.ts rename to goofy-client/apps/goofy-e2e/src/e2e/main-tests/vorgang-list/vorgang-list-pages.cy.ts diff --git a/goofy-client/apps/goofy-e2e/src/integration/main-tests/vorgang-list/vorgang-list-pagination.e2e-spec.ts b/goofy-client/apps/goofy-e2e/src/e2e/main-tests/vorgang-list/vorgang-list-pagination.cy.ts similarity index 100% rename from goofy-client/apps/goofy-e2e/src/integration/main-tests/vorgang-list/vorgang-list-pagination.e2e-spec.ts rename to goofy-client/apps/goofy-e2e/src/e2e/main-tests/vorgang-list/vorgang-list-pagination.cy.ts diff --git a/goofy-client/apps/goofy-e2e/src/integration/main-tests/vorgang-list/vorgang-list-views-pages.e2e-spec.ts b/goofy-client/apps/goofy-e2e/src/e2e/main-tests/vorgang-list/vorgang-list-views-pages.cy.ts similarity index 100% rename from goofy-client/apps/goofy-e2e/src/integration/main-tests/vorgang-list/vorgang-list-views-pages.e2e-spec.ts rename to goofy-client/apps/goofy-e2e/src/e2e/main-tests/vorgang-list/vorgang-list-views-pages.cy.ts diff --git a/goofy-client/apps/goofy-e2e/src/integration/main-tests/vorgang-list/vorgang-list.e2e-spec.ts b/goofy-client/apps/goofy-e2e/src/e2e/main-tests/vorgang-list/vorgang-list.cy.ts similarity index 100% rename from goofy-client/apps/goofy-e2e/src/integration/main-tests/vorgang-list/vorgang-list.e2e-spec.ts rename to goofy-client/apps/goofy-e2e/src/e2e/main-tests/vorgang-list/vorgang-list.cy.ts diff --git a/goofy-client/apps/goofy-e2e/src/integration/main-tests/vorgang-list/vorgang-list.search.e2e-spec.ts b/goofy-client/apps/goofy-e2e/src/e2e/main-tests/vorgang-list/vorgang-list.search.cy.ts similarity index 99% rename from goofy-client/apps/goofy-e2e/src/integration/main-tests/vorgang-list/vorgang-list.search.e2e-spec.ts rename to goofy-client/apps/goofy-e2e/src/e2e/main-tests/vorgang-list/vorgang-list.search.cy.ts index ac4f926faa23319149791317810064025a860a93..1e7f6eb1e7c108eeb80bba03550c68078ed89a36 100644 --- a/goofy-client/apps/goofy-e2e/src/integration/main-tests/vorgang-list/vorgang-list.search.e2e-spec.ts +++ b/goofy-client/apps/goofy-e2e/src/e2e/main-tests/vorgang-list/vorgang-list.search.cy.ts @@ -172,8 +172,6 @@ describe('VorgangList Suche', () => { it('should navigate back to list', () => { vorgangPage.getSubnavigation().getBackButton().click(); - exist(vorgangPage.getSpinner()); - waitForSpinnerToDisappear(); exist(vorgangList.getRoot()); }) diff --git a/goofy-client/apps/goofy-e2e/src/integration/main-tests/vorgang-list/vorgang-view-wiedervorlagen.pages.e2e-spec.ts b/goofy-client/apps/goofy-e2e/src/e2e/main-tests/vorgang-list/vorgang-view-wiedervorlagen.pages.cy.ts similarity index 100% rename from goofy-client/apps/goofy-e2e/src/integration/main-tests/vorgang-list/vorgang-view-wiedervorlagen.pages.e2e-spec.ts rename to goofy-client/apps/goofy-e2e/src/e2e/main-tests/vorgang-list/vorgang-view-wiedervorlagen.pages.cy.ts diff --git a/goofy-client/apps/goofy-e2e/src/integration/main-tests/vorgang-list/vorgang-views-filter.spec-e2e.ts b/goofy-client/apps/goofy-e2e/src/e2e/main-tests/vorgang-list/vorgang-views-filter.cy.ts similarity index 100% rename from goofy-client/apps/goofy-e2e/src/integration/main-tests/vorgang-list/vorgang-views-filter.spec-e2e.ts rename to goofy-client/apps/goofy-e2e/src/e2e/main-tests/vorgang-list/vorgang-views-filter.cy.ts diff --git a/goofy-client/apps/goofy-e2e/src/integration/main-tests/vorgang-wiedervorlage/vorgang-wiedervorlage.routing.e2e-spec.ts b/goofy-client/apps/goofy-e2e/src/e2e/main-tests/vorgang-wiedervorlage/vorgang-wiedervorlage.routing.cy.ts similarity index 100% rename from goofy-client/apps/goofy-e2e/src/integration/main-tests/vorgang-wiedervorlage/vorgang-wiedervorlage.routing.e2e-spec.ts rename to goofy-client/apps/goofy-e2e/src/e2e/main-tests/vorgang-wiedervorlage/vorgang-wiedervorlage.routing.cy.ts diff --git a/goofy-client/apps/goofy-e2e/src/integration/main-tests/vorgang-wiedervorlage/vorgang.wiedervorlage-list.e2e-spec.ts b/goofy-client/apps/goofy-e2e/src/e2e/main-tests/vorgang-wiedervorlage/vorgang.wiedervorlage-list.cy.ts similarity index 100% rename from goofy-client/apps/goofy-e2e/src/integration/main-tests/vorgang-wiedervorlage/vorgang.wiedervorlage-list.e2e-spec.ts rename to goofy-client/apps/goofy-e2e/src/e2e/main-tests/vorgang-wiedervorlage/vorgang.wiedervorlage-list.cy.ts diff --git a/goofy-client/apps/goofy-e2e/src/integration/main-tests/wiedervorlage-attachment/wiedervorlage-attachment.e2e-spec.ts b/goofy-client/apps/goofy-e2e/src/e2e/main-tests/wiedervorlage-attachment/wiedervorlage-attachment.cy.ts similarity index 97% rename from goofy-client/apps/goofy-e2e/src/integration/main-tests/wiedervorlage-attachment/wiedervorlage-attachment.e2e-spec.ts rename to goofy-client/apps/goofy-e2e/src/e2e/main-tests/wiedervorlage-attachment/wiedervorlage-attachment.cy.ts index f3f81417223f0b351ef9711bd9644e8a644960e1..8d25b11950bd3be02aa1dd0048245a2a7b732985 100644 --- a/goofy-client/apps/goofy-e2e/src/integration/main-tests/wiedervorlage-attachment/wiedervorlage-attachment.e2e-spec.ts +++ b/goofy-client/apps/goofy-e2e/src/e2e/main-tests/wiedervorlage-attachment/wiedervorlage-attachment.cy.ts @@ -25,14 +25,14 @@ import { AttachmentContainerE2EComponent, AttachmentListE2EComponent } from 'app import { WiedervorlageSubnavigationE2EComponent } from 'apps/goofy-e2e/src/components/wiedervorlage/wiedervorlage-subnavigation'; import { BinaryFileSnackbarMessageE2E } from 'apps/goofy-e2e/src/model/binary-file'; import { WiedervorlageE2E } from 'apps/goofy-e2e/src/model/wiedervorlage'; -import { dropCollections, readFileFromDownloads } from 'apps/goofy-e2e/src/support/cypress-helper'; +import { dropCollections, readFileFromDownloads, wait } from 'apps/goofy-e2e/src/support/cypress-helper'; import { initVorgangAttachedItem } from 'apps/goofy-e2e/src/support/vorgang-attached-item-util'; import { SnackBarE2EComponent } from '../../../components/ui/snackbar.e2e.component'; import { VorgangListE2EComponent } from '../../../components/vorgang/vorgang-list.e2e.component'; import { WiedervorlageInVorgangE2EComponent } from '../../../components/wiedervorlage/wiedervorlage-in-vorgang.e2e.component'; import { WiedervorlageE2EComponent } from '../../../components/wiedervorlage/wiedervorlage-page.e2e.component'; import { VorgangE2E } from '../../../model/vorgang'; -import { MainPage, waitForSpinnerToDisappear, waitforSpinnerToAppear } from '../../../page-objects/main.po'; +import { MainPage, waitForSpinnerToDisappear } from '../../../page-objects/main.po'; import { VorgangPage } from '../../../page-objects/vorgang.po'; import { WiedervorlagePage } from '../../../page-objects/wiedervorlage.po'; import { containClass, contains, exist, haveLength, notContainClass, notExist } from '../../../support/cypress.util'; @@ -233,9 +233,9 @@ describe('Wiedervorlage attachments', () => { const wiedervorlageComp: WiedervorlageInVorgangE2EComponent = wiedervorlageContainerInVorgang.getWiedervorlage(WIEDERVORLAGE_WITH_ATTACHMENTS_BETREFF); it('should open wiedervorlage page', () => { + wait(500); wiedervorlageComp.getLink().click(); - waitforSpinnerToAppear(); waitForSpinnerToDisappear(); exist(attachmentList.getItem(TEST_FILE_WITH_CONTENT).getRoot()); @@ -244,7 +244,6 @@ describe('Wiedervorlage attachments', () => { it('should mark as erledigt', () => { subnavigation.erledigen(); - waitforSpinnerToAppear(); waitForSpinnerToDisappear(); containClass(wiedervorlageContainer.getStatusDot(), 'erledigt'); @@ -260,7 +259,6 @@ describe('Wiedervorlage attachments', () => { it('should mark as open', () => { subnavigation.wiedereroeffnen(); - waitforSpinnerToAppear(); waitForSpinnerToDisappear(); notContainClass(wiedervorlageContainer.getStatusDot(), 'erledigt'); diff --git a/goofy-client/apps/goofy-e2e/src/integration/main-tests/wiedervorlage/wiedervorlage-authorize-by-role.e2e-spec.ts b/goofy-client/apps/goofy-e2e/src/e2e/main-tests/wiedervorlage/wiedervorlage-authorize-by-role.cy.ts similarity index 100% rename from goofy-client/apps/goofy-e2e/src/integration/main-tests/wiedervorlage/wiedervorlage-authorize-by-role.e2e-spec.ts rename to goofy-client/apps/goofy-e2e/src/e2e/main-tests/wiedervorlage/wiedervorlage-authorize-by-role.cy.ts diff --git a/goofy-client/apps/goofy-e2e/src/integration/main-tests/wiedervorlage/wiedervorlage.e2e-spec.ts b/goofy-client/apps/goofy-e2e/src/e2e/main-tests/wiedervorlage/wiedervorlage.cy.ts similarity index 99% rename from goofy-client/apps/goofy-e2e/src/integration/main-tests/wiedervorlage/wiedervorlage.e2e-spec.ts rename to goofy-client/apps/goofy-e2e/src/e2e/main-tests/wiedervorlage/wiedervorlage.cy.ts index bf77d79dacff2e909c12074011363e1d445e68b4..45c8b354131803e75927e39787f1909a53eb8eb0 100644 --- a/goofy-client/apps/goofy-e2e/src/integration/main-tests/wiedervorlage/wiedervorlage.e2e-spec.ts +++ b/goofy-client/apps/goofy-e2e/src/e2e/main-tests/wiedervorlage/wiedervorlage.cy.ts @@ -33,7 +33,7 @@ import { VorgangE2E } from '../../../model/vorgang'; import { MainPage, waitForSpinnerToDisappear } from '../../../page-objects/main.po'; import { VorgangPage } from '../../../page-objects/vorgang.po'; import { WiedervorlagePage } from '../../../page-objects/wiedervorlage.po'; -import { dropCollections } from '../../../support/cypress-helper'; +import { dropCollections, wait } from '../../../support/cypress-helper'; import { exist, haveText, haveValue, notExist } from '../../../support/cypress.util'; import { MessagesE2E } from '../../../support/messages'; import { formatDateLocal } from '../../../support/tech.util'; @@ -165,6 +165,7 @@ describe('Wiedervorlage', () => { it('should open Wiedervorlage-Page by click on wiedervorlage ', () => { const wiedervorlageInVorgang: WiedervorlageInVorgangE2EComponent = vorgangPage.getWiedervorlagenContainer().getWiedervorlage(wiedervorlageBetreff); + wait(500); wiedervorlageInVorgang.getLink().click(); waitForSpinnerToDisappear(); diff --git a/goofy-client/apps/goofy-e2e/src/integration/main-tests/wiedervorlage/wiedervorlage.erledigen.e2e-spec.ts b/goofy-client/apps/goofy-e2e/src/e2e/main-tests/wiedervorlage/wiedervorlage.erledigen.cy.ts similarity index 99% rename from goofy-client/apps/goofy-e2e/src/integration/main-tests/wiedervorlage/wiedervorlage.erledigen.e2e-spec.ts rename to goofy-client/apps/goofy-e2e/src/e2e/main-tests/wiedervorlage/wiedervorlage.erledigen.cy.ts index 000e8fb12d3357f5360bc3cc3f00678a289a0c65..f9a7d8593f4e6a546c4c9e12a312b9290be4df5b 100644 --- a/goofy-client/apps/goofy-e2e/src/integration/main-tests/wiedervorlage/wiedervorlage.erledigen.e2e-spec.ts +++ b/goofy-client/apps/goofy-e2e/src/e2e/main-tests/wiedervorlage/wiedervorlage.erledigen.cy.ts @@ -98,6 +98,7 @@ describe('Wiedervorlage erledigen/wiedereroeffnen', () => { it('should open wiedervorlage on click', () => { exist(wiedervorlage.getRoot()); + wait(500); wiedervorlage.getLink().click(); waitForSpinnerToDisappear(); @@ -135,7 +136,7 @@ describe('Wiedervorlage erledigen/wiedereroeffnen', () => { const wiedervorlage: WiedervorlageInVorgangE2EComponent = wiedervorlageContainerInVorgang.getWiedervorlage(wiedervorlageZumWiedereroeffnen.betreff); it('should open wiedervorlage on click', () => { - wait(1000); + wait(500); wiedervorlage.getLink().click(); waitForSpinnerToDisappear(); @@ -173,6 +174,7 @@ describe('Wiedervorlage erledigen/wiedereroeffnen', () => { const wiedervorlage: WiedervorlageInVorgangE2EComponent = wiedervorlageContainerInVorgang.getWiedervorlage(wiedervorlageZumWiedereroeffnen.betreff); it('should open wiedervorlage on click', () => { + wait(500); wiedervorlage.getLink().click(); waitForSpinnerToDisappear(); @@ -277,6 +279,7 @@ describe('Wiedervorlage erledigen/wiedereroeffnen', () => { }) it('should mark as erledigt', () => { + wait(500); wiedervorlage.getLink().click(); waitForSpinnerToDisappear(); subnavigation.erledigen(); diff --git a/goofy-client/apps/goofy-e2e/src/support/angular.util.ts b/goofy-client/apps/goofy-e2e/src/support/angular.util.ts index bfc1ff64f8ad191f701556c11f5d6c7d26595945..27c4f58ca783429f3ead8a3ba2eb0d4a7fa062f9 100644 --- a/goofy-client/apps/goofy-e2e/src/support/angular.util.ts +++ b/goofy-client/apps/goofy-e2e/src/support/angular.util.ts @@ -28,7 +28,7 @@ export const TOGGLE_ELEMENT: string = 'mat-slide-toggle'; enum AngularClassesE2E { MAT_CHECKED = 'mat-mdc-slide-toggle-checked', MAT_BUTTONG_TOGGLE_CHECKED = 'mat-button-toggle-checked', - MAT_FOCUSED = 'cdk-focused', + MAT_FOCUSED = 'mat-focused', CDK_KEYBOARD_FOCUSED = 'cdk-keyboard-focused' } diff --git a/goofy-client/apps/goofy-e2e/src/support/commands.ts b/goofy-client/apps/goofy-e2e/src/support/commands.ts index b471f61dedb7e41b8cb8a347fae48748cb85d269..7ee49c952b9212d5f85a12852ec954b71951e011 100644 --- a/goofy-client/apps/goofy-e2e/src/support/commands.ts +++ b/goofy-client/apps/goofy-e2e/src/support/commands.ts @@ -1,3 +1,4 @@ + /* * Copyright (C) 2022 Das Land Schleswig-Holstein vertreten durch den * Ministerpräsidenten des Landes Schleswig-Holstein @@ -21,6 +22,53 @@ * Die sprachspezifischen Genehmigungen und Beschränkungen * unter der Lizenz sind dem Lizenztext zu entnehmen. */ +enum HttpMethod { + POST = 'POST', + GET = 'GET' +} + +interface HttpHeader { + [headerKey: string]: string +} + +const DATA_TEST_ID: string = 'data-test-id'; +const DATA_TEST_CLASS: string = 'data-test-class'; + +const ACCES_TOKEN: string = 'access_token'; +const ID_TOKEN: string = 'id_token'; + +enum Header { + CONTENT_TYPE = 'Content-Type', + AUTHORIZATION = 'Authorization' +} + +const CYPRESS_CONFIG_BASE_URL: unknown = 'baseUrl'; + +enum CypressEnv { + KEYCLOAK_CLIENT = 'keycloakClient', + KEYCLOAK_REALM = 'keycloakRealm', + KEYCLOAK_URL = 'keycloakUrl', + SEARCH = 'search' +} + +const CONTENT_TYPE_HEADER_VALUE: string = 'application/x-www-form-urlencoded'; + +interface SearchIndex { + vorgangId: string, + vorgangName: string, + vorgangNummer: string, + createdAt: string, + antragstellerName: string, + antragstellerVorname: string, + status: string, + organisationseinheitenId: string, + aktenzeichen: string, + assignedTo: string, + _class: string +} + +const SEARCH_INDEX_CLASS: string = 'de.itvsh.ozg.pluto.common.search.IndexedVorgang'; + declare namespace Cypress { interface Chainable<Subject> { getTestElementWithOid(oid: string, ...args); @@ -36,12 +84,13 @@ declare namespace Cypress { } } + Cypress.Commands.add('getTestElement', (selector, ...args) => { - return cy.get(`[data-test-id~="${selector}"]`, ...args) + return cy.get(`[${DATA_TEST_ID}~="${selector}"]`, ...args) }) Cypress.Commands.add('getTestElementWithClass', (selector, ...args) => { - return cy.get(`[data-test-class="${selector}"]`, ...args) + return cy.get(`[${DATA_TEST_CLASS}="${selector}"]`, ...args) }) Cypress.Commands.add('getTestElementWithOid', (oid, ...args) => { @@ -49,63 +98,73 @@ Cypress.Commands.add('getTestElementWithOid', (oid, ...args) => { }) Cypress.Commands.add('findTestElementWithClass', { prevSubject: true }, (subject: any, selector) => { - return subject.find(`[data-test-class="${selector}"]`) + return subject.find(`[${DATA_TEST_CLASS}="${selector}"]`) }) Cypress.Commands.add('findElement', { prevSubject: true }, (subject: any, selector) => { return subject.find(selector); }) -Cypress.Commands.add('login', (user, password) => { - cy.logout(); +Cypress.Commands.add('login', (user: string, password: string) => { + cy.session(user, () => { + cy.request(buildLoginRequest(user, password)).then(response => handleLoginResponse(response)); + }); +}) - cy.request({ - method: 'POST', +function buildLoginRequest(user: string, password: string): any { + return { + method: HttpMethod.POST, followRedirect: false, url: `${getKeycloakBaseRealmUrl()}/token`, headers: { - 'Content-Type': 'application/x-www-form-urlencoded' + [Header.CONTENT_TYPE]: CONTENT_TYPE_HEADER_VALUE }, - body: { - client_id: Cypress.env('keycloakClient'), - username: user, - password: password, - grant_type: 'password', - redirect_uri: Cypress.config('baseUrl'), - response_mode: 'fragment', - response_type: 'code', - scope: 'openid' - } - }).then(response => { - const token = response.body.access_token; - const authorization: any = `bearer ${token}`; + body: buildLoginRequestBody(user, password) + } +} - cy.visit('', authorization); +function buildLoginRequestBody(user: string, password: string): any { + return { + client_id: Cypress.env(CypressEnv.KEYCLOAK_CLIENT), + username: user, + password: password, + grant_type: 'password', + redirect_uri: Cypress.config(CYPRESS_CONFIG_BASE_URL), + response_mode: 'fragment', + response_type: 'code', + scope: 'openid' + } +} - window.sessionStorage.setItem('access_token', token); - window.sessionStorage.setItem('id_token', token); - }); -}) +function handleLoginResponse(response): void { + const authorization: any = `bearer ${response.body.access_token}`; + cy.visit('', authorization); + + window.sessionStorage.setItem(ACCES_TOKEN, response.body.access_token); + window.sessionStorage.setItem(ID_TOKEN, response.body.id_token); + + cy.setCookie('XSRF-TOKEN', response.body.session_state); +} Cypress.Commands.add('getUserInfo', () => { return cy.request({ - method: 'GET', + method: HttpMethod.GET, url: `${getKeycloakBaseRealmUrl()}/userinfo`, headers: { - Authorization: `bearer ${window.sessionStorage.getItem('access_token')}` + [Header.AUTHORIZATION]: `bearer ${window.sessionStorage.getItem(ACCES_TOKEN)}` } }); }) Cypress.Commands.add('logout', () => { cy.request({ - method: 'GET', + method: HttpMethod.GET, url: `${getKeycloakBaseRealmUrl()}/logout`, headers: { - 'Content-Type': 'application/x-www-form-urlencoded' + [Header.CONTENT_TYPE]: CONTENT_TYPE_HEADER_VALUE }, body: { - refresh_token: window.sessionStorage.getItem('id_token') + refresh_token: window.sessionStorage.getItem(ID_TOKEN) }, failOnStatusCode: false }).then(() => { @@ -116,62 +175,62 @@ Cypress.Commands.add('logout', () => { }) function getKeycloakBaseRealmUrl(): string { - return `${Cypress.env('keycloakUrl')}realms/${Cypress.env('keycloakRealm')}/protocol/openid-connect`; + return `${Cypress.env(CypressEnv.KEYCLOAK_URL)}realms/${Cypress.env(CypressEnv.KEYCLOAK_REALM)}/protocol/openid-connect`; } Cypress.Commands.add('addVorgangToSearchIndex', (vorgang) => { cy.request({ - method: 'POST', + method: HttpMethod.POST, url: `${buildSearchIndexPostUrl()}/_doc/${vorgang._id.$oid}`, headers: buildAuthorizationHeader(), body: buildSearchIndexBody(vorgang) }); }) -function buildSearchIndexBody(vorgang) { +function buildSearchIndexBody(vorgang: any): SearchIndex { return { - '_class': 'de.itvsh.ozg.pluto.common.search.IndexedVorgang', - 'vorgangId': vorgang._id.$oid, - 'vorgangName': vorgang.name, - 'vorgangNummer': vorgang.nummer, - 'createdAt': vorgang.createdAt.$date, - 'antragstellerName': vorgang.eingangs[0].antragsteller.nachname, - 'antragstellerVorname': vorgang.eingangs[0].antragsteller.vorname, - 'status': vorgang.status, - 'organisationseinheitenId': vorgang.eingangs[0].zustaendigeStelle.organisationseinheitenId, - 'aktenzeichen': vorgang.aktenzeichen, - 'assignedTo': vorgang.assignedTo + vorgangId: vorgang._id.$oid, + vorgangName: vorgang.name, + vorgangNummer: vorgang.nummer, + createdAt: vorgang.createdAt.$date, + antragstellerName: vorgang.eingangs[0].antragsteller.nachname, + antragstellerVorname: vorgang.eingangs[0].antragsteller.vorname, + status: vorgang.status, + organisationseinheitenId: vorgang.eingangs[0].zustaendigeStelle.organisationseinheitenId, + aktenzeichen: vorgang.aktenzeichen, + assignedTo: vorgang.assignedTo, + _class: SEARCH_INDEX_CLASS, }; } Cypress.Commands.add('removeAllDocumentsFromSearchIndex', () => { cy.request({ - method: 'POST', + method: HttpMethod.POST, url: `${buildSearchIndexPostUrl()}/_delete_by_query`, headers: buildAuthorizationHeader(), body: buildSearchIndexRemoveAllBody() }); }) -function buildSearchIndexPostUrl() { - const searchEnv = getSearchEnv(); +function buildSearchIndexPostUrl(): string { + const searchEnv: string = getSearchEnv(); return `${searchEnv['url']}/${searchEnv['index']}`; } -function buildAuthorizationHeader() { - return { 'Authorization': `Basic ${buildToken()}` }; +function buildAuthorizationHeader(): HttpHeader { + return { [Header.AUTHORIZATION]: `Basic ${buildToken()}` }; } -function buildToken() { - const searchEnv = getSearchEnv(); +function buildToken(): string { + const searchEnv: string = getSearchEnv(); return btoa(`${searchEnv['user']}:${searchEnv['password']}`); } -function getSearchEnv() { - return Cypress.env('search'); +function getSearchEnv(): string { + return Cypress.env(CypressEnv.SEARCH); } -function buildSearchIndexRemoveAllBody() { +function buildSearchIndexRemoveAllBody(): any { return { 'query': { 'match_all': {} diff --git a/goofy-client/apps/goofy-e2e/src/plugins/index.js b/goofy-client/apps/goofy-e2e/src/support/cypress-tasks.ts similarity index 77% rename from goofy-client/apps/goofy-e2e/src/plugins/index.js rename to goofy-client/apps/goofy-e2e/src/support/cypress-tasks.ts index 9067346ec0edddf16dbf03231458902863ac2cb2..6c6806b83b7e4cd4e2d8dbfcd48976a506dc6774 100644 --- a/goofy-client/apps/goofy-e2e/src/plugins/index.js +++ b/goofy-client/apps/goofy-e2e/src/support/cypress-tasks.ts @@ -1,49 +1,8 @@ -/* - * Copyright (C) 2022 Das Land Schleswig-Holstein vertreten durch den - * Ministerpräsidenten des Landes Schleswig-Holstein - * Staatskanzlei - * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung - * - * Lizenziert unter der EUPL, Version 1.2 oder - sobald - * diese von der Europäischen Kommission genehmigt wurden - - * Folgeversionen der EUPL ("Lizenz"); - * Sie dürfen dieses Werk ausschließlich gemäß - * dieser Lizenz nutzen. - * Eine Kopie der Lizenz finden Sie hier: - * - * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 - * - * Sofern nicht durch anwendbare Rechtsvorschriften - * gefordert oder in schriftlicher Form vereinbart, wird - * die unter der Lizenz verbreitete Software "so wie sie - * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - - * ausdrücklich oder stillschweigend - verbreitet. - * Die sprachspezifischen Genehmigungen und Beschränkungen - * unter der Lizenz sind dem Lizenztext zu entnehmen. - */ -/// <reference types="cypress" /> -// *********************************************************** -// This example plugins/index.js can be used to load plugins -// -// You can change the location of this file or turn off loading -// the plugins file with the 'pluginsFile' configuration option. -// -// You can read more here: -// https://on.cypress.io/plugins-guide -// *********************************************************** - -// This function is called when a project is opened or re-opened (e.g. due to -// the project's config changing) - -/** - * @type {Cypress.PluginConfig} - */ -const MongoClient = require('mongodb').MongoClient; +import { Long, MongoClient, ObjectId } from 'mongodb'; + const Binary = require('mongodb').Binary; -const ObjectId = require('mongodb').ObjectId; -const Long = require('mongodb').Long; -module.exports = (on, config) => { +module.exports = (on: any, config: any) => { on('task', { initCommandData({collection, data}) { console.log('initCommandData'); @@ -98,32 +57,32 @@ module.exports = (on, config) => { // Lösung: // - NPM-Paket identifizieren, dass "SystemDateTimeProvider" enthält. // - NPM-Paket im "test" Attribut unten hinzufügen. - const webpackPreprocessor = require('@cypress/webpack-batteries-included-preprocessor'); - const webpackOptions = webpackPreprocessor.defaultOptions.webpackOptions; - - webpackOptions.module.rules.unshift({ - test: /[/\\](@angular|@ngxp|angular-oauth2-oidc)[/\\].+\.m?js$/, - resolve: { - fullySpecified: false, - }, - use: { - loader: 'babel-loader', - options: { - plugins: ['@angular/compiler-cli/linker/babel'], - compact: false, - cacheDirectory: true - } - } - }); - - on('file:preprocessor', webpackPreprocessor({ - webpackOptions: webpackOptions, - typescript: require.resolve('typescript') - })); - - return config; + const webpackPreprocessor = require('@cypress/webpack-batteries-included-preprocessor'); + const webpackOptions = webpackPreprocessor.defaultOptions.webpackOptions; + + webpackOptions.module.rules.unshift({ + test: /[/\\](@angular|@ngxp|angular-oauth2-oidc)[/\\].+\.m?js$/, + resolve: { + fullySpecified: false, + }, + use: { + loader: 'babel-loader', + options: { + plugins: ['@angular/compiler-cli/linker/babel'], + compact: false, + cacheDirectory: true + } + } + }); + + on('file:preprocessor', webpackPreprocessor({ + webpackOptions: webpackOptions, + typescript: require.resolve('typescript') + })); + + return config; // Ende - Workaround für Angular 13 und Cypress mit Webpack 4 -}; +} function parseCommandData(commands) { commands.forEach(command => parseCommand(command)) diff --git a/goofy-client/apps/goofy-e2e/src/support/delete-old-reports.ts b/goofy-client/apps/goofy-e2e/src/support/delete-old-reports.ts index 3a7e7d5170a0d442ac2272f1082c2f440ada2ca4..b836197cd6fcb9e10772e25c8b9ec86c7d9c606d 100644 --- a/goofy-client/apps/goofy-e2e/src/support/delete-old-reports.ts +++ b/goofy-client/apps/goofy-e2e/src/support/delete-old-reports.ts @@ -21,6 +21,6 @@ * Die sprachspezifischen Genehmigungen und Beschränkungen * unter der Lizenz sind dem Lizenztext zu entnehmen. */ -const fs = require('fs') +import * as fs from 'fs'; fs.rmdirSync(`apps/goofy-e2e/reports/${process.env.REPORT_FOLDER}`, { recursive: true }); \ No newline at end of file diff --git a/goofy-client/apps/goofy-e2e/src/support/index.ts b/goofy-client/apps/goofy-e2e/src/support/e2e.ts similarity index 92% rename from goofy-client/apps/goofy-e2e/src/support/index.ts rename to goofy-client/apps/goofy-e2e/src/support/e2e.ts index 3648b5106f64d556365991da18f0c4054d5c2cd8..dfe690bf49b054326bcc103a14ee37e6f209efdb 100644 --- a/goofy-client/apps/goofy-e2e/src/support/index.ts +++ b/goofy-client/apps/goofy-e2e/src/support/e2e.ts @@ -43,28 +43,26 @@ import 'cypress-timestamps/support'; import './commands'; import './file-upload'; -Cypress.Cookies.defaults({ - preserve: ['XSRF-TOKEN', 'session_id'] -}) - Cypress.on('command:start', ({ attributes }) => { if (attributes.type === 'parent') { - Cypress.log({ name: `${new Date().toISOString()} - ${attributes.name}` }); + Cypress.log({ + name: `${new Date().toISOString()} - ${attributes.name}`, + }); } -}) +}); Cypress.on('after:screenshot', ({ testFailure, takenAt }) => { if (testFailure) { console.log(`Error at: ${takenAt}`); } -}) +}); Cypress.on('fail', (err) => { console.error(err); err.message = new Date().toISOString() + '\n' + err.message; throw err; -}) +}); Cypress.Keyboard.defaults({ keystrokeDelay: 30, -}) \ No newline at end of file +}); diff --git a/goofy-client/apps/goofy-e2e/src/support/pre-ea-report-merge.ts b/goofy-client/apps/goofy-e2e/src/support/pre-ea-report-merge.ts index 656abb5c66310317a87aa181d77a0c6ed3838a8a..a73634273e24cc94aee5faa9523cc525a46a99d1 100644 --- a/goofy-client/apps/goofy-e2e/src/support/pre-ea-report-merge.ts +++ b/goofy-client/apps/goofy-e2e/src/support/pre-ea-report-merge.ts @@ -21,8 +21,10 @@ * Die sprachspezifischen Genehmigungen und Beschränkungen * unter der Lizenz sind dem Lizenztext zu entnehmen. */ -const fs = require('fs') +import * as fs from 'fs'; -if (fs.existsSync('apps/goofy-e2e/reports_einheitlicher-ansprechpartner/mochawesome-report/.jsons')) { - fs.rename('apps/goofy-e2e/reports_einheitlicher-ansprechpartner/mochawesome-report/.jsons', 'apps/goofy-e2e/reports_einheitlicher-ansprechpartner/mochawesome-report/jsons', () => { }) +const EINHEITLICHER_ANSPRECHPARTNER_REPORT_FOLDER: string = 'apps/goofy-e2e/reports_einheitlicher-ansprechpartner/mochawesome-report'; + +if (fs.existsSync(`${EINHEITLICHER_ANSPRECHPARTNER_REPORT_FOLDER}/.jsons`)) { + fs.rename(`${EINHEITLICHER_ANSPRECHPARTNER_REPORT_FOLDER}/.jsons`, `${EINHEITLICHER_ANSPRECHPARTNER_REPORT_FOLDER}/jsons`, () => { }) } \ No newline at end of file diff --git a/goofy-client/apps/goofy-e2e/src/support/pre-merge.ts b/goofy-client/apps/goofy-e2e/src/support/pre-merge.ts index 710c4513d9884794cf3050d31326c01490336a34..3f19606e7ee3ab96d3a52a164e9e75024361c648 100644 --- a/goofy-client/apps/goofy-e2e/src/support/pre-merge.ts +++ b/goofy-client/apps/goofy-e2e/src/support/pre-merge.ts @@ -21,8 +21,10 @@ * Die sprachspezifischen Genehmigungen und Beschränkungen * unter der Lizenz sind dem Lizenztext zu entnehmen. */ -const fs = require('fs') +import * as fs from 'fs'; -if (fs.existsSync(`apps/goofy-e2e/reports/${process.env.REPORT_FOLDER}/mochawesome-report/.jsons`)) { - fs.rename(`apps/goofy-e2e/reports/${process.env.REPORT_FOLDER}/mochawesome-report/.jsons`, `apps/goofy-e2e/reports/${process.env.REPORT_FOLDER}/mochawesome-report/jsons`, () => { }) +const MAIN_TEST_REPORT_FOLDER: string = `apps/goofy-e2e/reports/${process.env.REPORT_FOLDER}/mochawesome-report`; + +if (fs.existsSync(`${MAIN_TEST_REPORT_FOLDER}/.jsons`)) { + fs.rename(`${MAIN_TEST_REPORT_FOLDER}/.jsons`, `${MAIN_TEST_REPORT_FOLDER}/jsons`, () => { }) } \ No newline at end of file diff --git a/goofy-client/apps/goofy-e2e/tsconfig.e2e.json b/goofy-client/apps/goofy-e2e/tsconfig.e2e.json deleted file mode 100644 index 9dc3660a79ee2f6daf097b4930427223896e3b25..0000000000000000000000000000000000000000 --- a/goofy-client/apps/goofy-e2e/tsconfig.e2e.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "extends": "./tsconfig.json", - "compilerOptions": { - "sourceMap": false, - "outDir": "../../dist/out-tsc", - "allowJs": true, - "types": ["cypress", "node"] - }, - "include": ["src/**/*.ts", "src/**/*.js"] -} diff --git a/goofy-client/apps/goofy-e2e/tsconfig.json b/goofy-client/apps/goofy-e2e/tsconfig.json index 4d866746dae60576fad661bfa3985ab75aa31ca4..2cdee4db8b30c135503582f5274a1387ec8cd70c 100644 --- a/goofy-client/apps/goofy-e2e/tsconfig.json +++ b/goofy-client/apps/goofy-e2e/tsconfig.json @@ -1,16 +1,28 @@ { - "extends": "../../tsconfig.base.json", - "files": [], - "include": ["**/*.ts"], - "compilerOptions": { - "sourceMap": false, - "target": "es2020", - "lib": ["es2018", "dom"], - "types": ["cypress", "cypress-real-events"] - }, - "references": [ - { - "path": "./tsconfig.e2e.json" - } - ] -} \ No newline at end of file + "extends": "../../tsconfig.base.json", + "compilerOptions": { + "sourceMap": false, + "outDir": "../dist/out-tsc", + "allowJs": true, + "types": ["cypress", "node"], + "forceConsistentCasingInFileNames": true, + "strict": false, + "noImplicitOverride": true, + "noPropertyAccessFromIndexSignature": true, + "noImplicitReturns": true, + "noFallthroughCasesInSwitch": true + }, + "include": [ + "src/**/*.ts", + "src/**/*.js", + "cypress.config.ts", + "cypress-ci-main-tests.config.ts", + "cypress-ci-einheitlicher-ansprechpartner.config.ts" + ], + "angularCompilerOptions": { + "enableI18nLegacyMessageIdFormat": false, + "strictInjectionParameters": true, + "strictInputAccessModifiers": true, + "strictTemplates": true + } +} diff --git a/goofy-client/libs/ui/src/lib/ui/fixed-dialog/_fixed-dialog.theme.scss b/goofy-client/libs/ui/src/lib/ui/fixed-dialog/_fixed-dialog.theme.scss index 677a82fcb5b52c9f5a4e0f62ada552b952b702bd..0b4c18dfae3bbfe602477119799a5a2b7bee7b18 100644 --- a/goofy-client/libs/ui/src/lib/ui/fixed-dialog/_fixed-dialog.theme.scss +++ b/goofy-client/libs/ui/src/lib/ui/fixed-dialog/_fixed-dialog.theme.scss @@ -73,7 +73,7 @@ min-height: initial; overflow: hidden; margin: 0; - padding: 0; + padding: 0 !important; .button-bar-bottom { height: 0; diff --git a/goofy-client/package-lock.json b/goofy-client/package-lock.json index 10b14ffa4b27a46ef2939f8e675a77ce7c43d90c..074bbe3cfcfe0c4c305618a47036766f2b993842 100644 --- a/goofy-client/package-lock.json +++ b/goofy-client/package-lock.json @@ -50,8 +50,8 @@ "@angular/compiler-cli": "15.1.4", "@angular/language-service": "15.1.4", "@bahmutov/cypress-extends": "1.1.0", - "@cypress/webpack-batteries-included-preprocessor": "^2.3.0", - "@cypress/webpack-preprocessor": "^5.16.3", + "@cypress/webpack-batteries-included-preprocessor": "^2.4.1", + "@cypress/webpack-preprocessor": "^5.17.1", "@faker-js/faker": "^6.3.1", "@ngrx/schematics": "15.0.0", "@ngrx/store-devtools": "15.0.0", @@ -68,10 +68,10 @@ "@types/node": "^16.18.1", "@typescript-eslint/eslint-plugin": "5.44.0", "@typescript-eslint/parser": "5.44.0", - "cypress": "^9.7.0", + "cypress": "^12.17.4", "cypress-file-upload": "5.0.8", - "cypress-mochawesome-reporter": "3.3.0", - "cypress-real-events": "^1.7.6", + "cypress-mochawesome-reporter": "3.6.0", + "cypress-real-events": "^1.10.3", "cypress-timestamps": "^1.2.3", "eslint": "8.15.0", "eslint-config-prettier": "8.3.0", @@ -3341,9 +3341,9 @@ } }, "node_modules/@cypress/request": { - "version": "2.88.11", - "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/@cypress/request/-/request-2.88.11.tgz", - "integrity": "sha512-M83/wfQ1EkspjkE2lNWNV5ui2Cv7UCv1swW1DqljahbzLVWltcsexQh8jYtuS/vzFXP+HySntGM83ZXA9fn17w==", + "version": "2.88.12", + "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/@cypress/request/-/request-2.88.12.tgz", + "integrity": "sha512-tOn+0mDZxASFM+cuAP9szGUGPI1HwWVSvdzm7V4cCsPdFTx6qMj29CwaQmRAMIEhORIUBFBsYROYJcveK4uOjA==", "devOptional": true, "license": "Apache-2.0", "dependencies": { @@ -3362,7 +3362,7 @@ "performance-now": "^2.1.0", "qs": "~6.10.3", "safe-buffer": "^5.1.2", - "tough-cookie": "~2.5.0", + "tough-cookie": "^4.1.3", "tunnel-agent": "^0.6.0", "uuid": "^8.3.2" }, @@ -4347,9 +4347,9 @@ "license": "ISC" }, "node_modules/@cypress/webpack-preprocessor": { - "version": "5.17.0", - "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/@cypress/webpack-preprocessor/-/webpack-preprocessor-5.17.0.tgz", - "integrity": "sha512-HyFqHkrOrIIYOt4G+r3VK0kVYTcev1tEcqBI/0DJ4AzEuEgW/TB+cX56txy4Cgn60XXdJoul2utclZwUqOsPZA==", + "version": "5.17.1", + "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/@cypress/webpack-preprocessor/-/webpack-preprocessor-5.17.1.tgz", + "integrity": "sha512-FE/e8ikPc8z4EVopJCaior3RGy0jd2q9Xcp5NtiwNG4XnLfEnUFTZlAGwXe75sEh4fNMPrBJW1KIz77PX5vGAw==", "dev": true, "license": "MIT", "dependencies": { @@ -9053,9 +9053,9 @@ "license": "MIT" }, "node_modules/@types/node": { - "version": "16.18.23", - "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/@types/node/-/node-16.18.23.tgz", - "integrity": "sha512-XAMpaw1s1+6zM+jn2tmw8MyaRDIJfXxqmIQIS0HfoGYPuf7dUWeiUKopwq13KFX9lEp1+THGtlaaYx39Nxr58g==", + "version": "16.18.54", + "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/@types/node/-/node-16.18.54.tgz", + "integrity": "sha512-oTmGy68gxZZ21FhTJVVvZBYpQHEBZxHKTsGshobMqm9qWpbqdZsA5jvsuPZcHu0KwpmLrOHWPdEfg7XDpNT9UA==", "license": "MIT" }, "node_modules/@types/parse-json": { @@ -11200,6 +11200,14 @@ "dev": true, "license": "BSD-2-Clause" }, + "node_modules/browser-stdout": { + "version": "1.3.1", + "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/browser-stdout/-/browser-stdout-1.3.1.tgz", + "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", + "dev": true, + "license": "ISC", + "peer": true + }, "node_modules/browserify-aes": { "version": "1.2.0", "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/browserify-aes/-/browserify-aes-1.2.0.tgz", @@ -11550,9 +11558,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001474", - "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/caniuse-lite/-/caniuse-lite-1.0.30001474.tgz", - "integrity": "sha512-iaIZ8gVrWfemh5DG3T9/YqarVZoYf0r188IjaGwx68j4Pf0SGY6CQkmJUIE+NZHkkecQGohzXmBGEwWDr9aM3Q==", + "version": "1.0.30001539", + "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/caniuse-lite/-/caniuse-lite-1.0.30001539.tgz", + "integrity": "sha512-hfS5tE8bnNiNvEOEkm8HElUHroYwlqMMENEzELymy77+tJ6m+gA2krtHl5hxJaj71OlpC2cHZbdSMX1/YEqEkA==", "funding": [ { "type": "opencollective", @@ -12046,9 +12054,9 @@ } }, "node_modules/commander": { - "version": "5.1.0", - "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/commander/-/commander-5.1.0.tgz", - "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==", + "version": "6.2.1", + "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/commander/-/commander-6.2.1.tgz", + "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==", "devOptional": true, "license": "MIT", "engines": { @@ -13069,16 +13077,16 @@ "license": "MIT" }, "node_modules/cypress": { - "version": "9.7.0", - "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/cypress/-/cypress-9.7.0.tgz", - "integrity": "sha512-+1EE1nuuuwIt/N1KXRR2iWHU+OiIt7H28jJDyyI4tiUftId/DrXYEwoDa5+kH2pki1zxnA0r6HrUGHV5eLbF5Q==", + "version": "12.17.4", + "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/cypress/-/cypress-12.17.4.tgz", + "integrity": "sha512-gAN8Pmns9MA5eCDFSDJXWKUpaL3IDd89N9TtIupjYnzLSmlpVr+ZR+vb4U/qaMp+lB6tBvAmt7504c3Z4RU5KQ==", "devOptional": true, "hasInstallScript": true, "license": "MIT", "dependencies": { - "@cypress/request": "^2.88.10", + "@cypress/request": "2.88.12", "@cypress/xvfb": "^1.2.4", - "@types/node": "^14.14.31", + "@types/node": "^16.18.39", "@types/sinonjs__fake-timers": "8.1.1", "@types/sizzle": "^2.3.2", "arch": "^2.2.0", @@ -13090,12 +13098,12 @@ "check-more-types": "^2.24.0", "cli-cursor": "^3.1.0", "cli-table3": "~0.6.1", - "commander": "^5.1.0", + "commander": "^6.2.1", "common-tags": "^1.8.0", "dayjs": "^1.10.4", - "debug": "^4.3.2", + "debug": "^4.3.4", "enquirer": "^2.3.6", - "eventemitter2": "^6.4.3", + "eventemitter2": "6.4.7", "execa": "4.1.0", "executable": "^4.1.1", "extract-zip": "2.0.1", @@ -13108,12 +13116,13 @@ "listr2": "^3.8.3", "lodash": "^4.17.21", "log-symbols": "^4.0.0", - "minimist": "^1.2.6", + "minimist": "^1.2.8", "ospath": "^1.2.2", "pretty-bytes": "^5.6.0", + "process": "^0.11.10", "proxy-from-env": "1.0.0", "request-progress": "^3.0.0", - "semver": "^7.3.2", + "semver": "^7.5.3", "supports-color": "^8.1.1", "tmp": "~0.2.1", "untildify": "^4.0.0", @@ -13123,7 +13132,7 @@ "cypress": "bin/cypress" }, "engines": { - "node": ">=12.0.0" + "node": "^14.0.0 || ^16.0.0 || >=18.0.0" } }, "node_modules/cypress-file-upload": { @@ -13140,17 +13149,21 @@ } }, "node_modules/cypress-mochawesome-reporter": { - "version": "3.3.0", - "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/cypress-mochawesome-reporter/-/cypress-mochawesome-reporter-3.3.0.tgz", - "integrity": "sha512-X4HU1JpuB62MXLh46660KmIs/L6noWV2KpxaXPDorz1zwgj26NN+BPCLP80D9cCFUwX3hNH0pKFZDwVR7vM8wg==", + "version": "3.6.0", + "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/cypress-mochawesome-reporter/-/cypress-mochawesome-reporter-3.6.0.tgz", + "integrity": "sha512-NeYpeZVB5YCU10I3a1yA2qHt+YREo0jZw4Gj83JTJ7YX/ZLFfd8MYKl2O19d/yYC8np/fpMufp5gt3ympd9DWQ==", "dev": true, "license": "MIT", "dependencies": { + "commander": "^10.0.1", "fs-extra": "^10.0.1", "mochawesome": "^7.1.3", "mochawesome-merge": "^4.2.1", "mochawesome-report-generator": "^6.2.0" }, + "bin": { + "generate-mochawesome-report": "cli.js" + }, "engines": { "node": ">=14" }, @@ -13161,6 +13174,16 @@ "cypress": ">=6.2.0" } }, + "node_modules/cypress-mochawesome-reporter/node_modules/commander": { + "version": "10.0.1", + "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/commander/-/commander-10.0.1.tgz", + "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14" + } + }, "node_modules/cypress-mochawesome-reporter/node_modules/fs-extra": { "version": "10.1.0", "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/fs-extra/-/fs-extra-10.1.0.tgz", @@ -13177,13 +13200,13 @@ } }, "node_modules/cypress-real-events": { - "version": "1.7.6", - "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/cypress-real-events/-/cypress-real-events-1.7.6.tgz", - "integrity": "sha512-yP6GnRrbm6HK5q4DH6Nnupz37nOfZu/xn1xFYqsE2o4G73giPWQOdu6375QYpwfU1cvHNCgyD2bQ2hPH9D7NMw==", + "version": "1.10.3", + "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/cypress-real-events/-/cypress-real-events-1.10.3.tgz", + "integrity": "sha512-YN3fn+CJIAM638sE6uMvv2/n3PsWowdd0rOiN6ZoyezNAMyENfuQHvccLKZpN+apGfQZYetCml6QXLYgDid2fg==", "dev": true, "license": "MIT", "peerDependencies": { - "cypress": "^4.x || ^5.x || ^6.x || ^7.x || ^8.x || ^9.x || ^10.x || ^11.x || ^12.x" + "cypress": "^4.x || ^5.x || ^6.x || ^7.x || ^8.x || ^9.x || ^10.x || ^11.x || ^12.x || ^13.x" } }, "node_modules/cypress-timestamps": { @@ -13196,13 +13219,6 @@ "format-duration": "^2.0.0" } }, - "node_modules/cypress/node_modules/@types/node": { - "version": "14.18.42", - "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/@types/node/-/node-14.18.42.tgz", - "integrity": "sha512-xefu+RBie4xWlK8hwAzGh3npDz/4VhF6icY/shU+zv/1fNn+ZVG7T7CRwe9LId9sAYRPxI+59QBPuKL3WpyGRg==", - "devOptional": true, - "license": "MIT" - }, "node_modules/cypress/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/ansi-styles/-/ansi-styles-4.3.0.tgz", @@ -13302,6 +13318,35 @@ "node": ">=8" } }, + "node_modules/cypress/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "devOptional": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/cypress/node_modules/semver": { + "version": "7.5.4", + "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "devOptional": true, + "license": "ISC", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/cypress/node_modules/supports-color": { "version": "8.1.1", "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/supports-color/-/supports-color-8.1.1.tgz", @@ -13318,6 +13363,13 @@ "url": "https://github.com/chalk/supports-color?sponsor=1" } }, + "node_modules/cypress/node_modules/yallist": { + "version": "4.0.0", + "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "devOptional": true, + "license": "ISC" + }, "node_modules/dashdash": { "version": "1.14.1", "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/dashdash/-/dashdash-1.14.1.tgz", @@ -13407,6 +13459,20 @@ } } }, + "node_modules/decamelize": { + "version": "4.0.0", + "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/decamelize/-/decamelize-4.0.0.tgz", + "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/decimal.js": { "version": "10.4.3", "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/decimal.js/-/decimal.js-10.4.3.tgz", @@ -14957,9 +15023,9 @@ "license": "MIT" }, "node_modules/eventemitter2": { - "version": "6.4.9", - "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/eventemitter2/-/eventemitter2-6.4.9.tgz", - "integrity": "sha512-JEPTiaOt9f04oa6NOkc4aH+nVp5I3wEjpHbIPqfgCdD5v5bUzy7xQqwcVO2aDQgOWhI28da57HksMrzK9HlRxg==", + "version": "6.4.7", + "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/eventemitter2/-/eventemitter2-6.4.7.tgz", + "integrity": "sha512-tYUSVOGeQPKt/eC1ABfhHy5Xd96N3oIijJvN3O9+TsC28T5V9yX9oEfEK5faP0EFSNVOG97qtAS68GBrQB2hDg==", "devOptional": true, "license": "MIT" }, @@ -20811,32 +20877,6 @@ "dev": true, "license": "MIT" }, - "node_modules/jsdom/node_modules/tough-cookie": { - "version": "4.1.2", - "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/tough-cookie/-/tough-cookie-4.1.2.tgz", - "integrity": "sha512-G9fqXWoYFZgTc2z8Q5zaHy/vJMjm+WV0AkAeHxVCQiEB1b+dGvWzFW6QV07cY5jQ5gRkeid2qIkzkxUnmoQZUQ==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "psl": "^1.1.33", - "punycode": "^2.1.1", - "universalify": "^0.2.0", - "url-parse": "^1.5.3" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/jsdom/node_modules/universalify": { - "version": "0.2.0", - "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/universalify/-/universalify-0.2.0.tgz", - "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 4.0.0" - } - }, "node_modules/jsesc": { "version": "2.5.2", "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/jsesc/-/jsesc-2.5.2.tgz", @@ -22315,6 +22355,286 @@ "node": ">=10" } }, + "node_modules/mocha": { + "version": "10.2.0", + "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/mocha/-/mocha-10.2.0.tgz", + "integrity": "sha512-IDY7fl/BecMwFHzoqF2sg/SHHANeBoMMXFlS9r0OXKDssYE1M5O43wUY/9BVPeIvfH2zmEbBfseqN9gBQZzXkg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "ansi-colors": "4.1.1", + "browser-stdout": "1.3.1", + "chokidar": "3.5.3", + "debug": "4.3.4", + "diff": "5.0.0", + "escape-string-regexp": "4.0.0", + "find-up": "5.0.0", + "glob": "7.2.0", + "he": "1.2.0", + "js-yaml": "4.1.0", + "log-symbols": "4.1.0", + "minimatch": "5.0.1", + "ms": "2.1.3", + "nanoid": "3.3.3", + "serialize-javascript": "6.0.0", + "strip-json-comments": "3.1.1", + "supports-color": "8.1.1", + "workerpool": "6.2.1", + "yargs": "16.2.0", + "yargs-parser": "20.2.4", + "yargs-unparser": "2.0.0" + }, + "bin": { + "_mocha": "bin/_mocha", + "mocha": "bin/mocha.js" + }, + "engines": { + "node": ">= 14.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mochajs" + } + }, + "node_modules/mocha/node_modules/ansi-colors": { + "version": "4.1.1", + "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/ansi-colors/-/ansi-colors-4.1.1.tgz", + "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/mocha/node_modules/argparse": { + "version": "2.0.1", + "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true, + "license": "Python-2.0", + "peer": true + }, + "node_modules/mocha/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mocha/node_modules/find-up": { + "version": "5.0.0", + "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mocha/node_modules/glob": { + "version": "7.2.0", + "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "dev": true, + "license": "ISC", + "peer": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/mocha/node_modules/glob/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "peer": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/mocha/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/mocha/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/mocha/node_modules/locate-path": { + "version": "6.0.0", + "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mocha/node_modules/minimatch": { + "version": "5.0.1", + "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/minimatch/-/minimatch-5.0.1.tgz", + "integrity": "sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==", + "dev": true, + "license": "ISC", + "peer": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/mocha/node_modules/minimatch/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/mocha/node_modules/ms": { + "version": "2.1.3", + "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/mocha/node_modules/p-locate": { + "version": "5.0.0", + "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mocha/node_modules/serialize-javascript": { + "version": "6.0.0", + "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/serialize-javascript/-/serialize-javascript-6.0.0.tgz", + "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", + "dev": true, + "license": "BSD-3-Clause", + "peer": true, + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/mocha/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/mocha/node_modules/yargs": { + "version": "16.2.0", + "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/mocha/node_modules/yargs-parser": { + "version": "20.2.4", + "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/yargs-parser/-/yargs-parser-20.2.4.tgz", + "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", + "dev": true, + "license": "ISC", + "peer": true, + "engines": { + "node": ">=10" + } + }, "node_modules/mochawesome": { "version": "7.1.3", "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/mochawesome/-/mochawesome-7.1.3.tgz", @@ -22892,6 +23212,20 @@ "license": "MIT", "optional": true }, + "node_modules/nanoid": { + "version": "3.3.3", + "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/nanoid/-/nanoid-3.3.3.tgz", + "integrity": "sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w==", + "dev": true, + "license": "MIT", + "peer": true, + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, "node_modules/nanomatch": { "version": "1.2.13", "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/nanomatch/-/nanomatch-1.2.13.tgz", @@ -25354,7 +25688,7 @@ "version": "0.11.10", "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/process/-/process-0.11.10.tgz", "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", - "dev": true, + "devOptional": true, "license": "MIT", "engines": { "node": ">= 0.6.0" @@ -25576,7 +25910,7 @@ "version": "2.2.0", "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/querystringify/-/querystringify-2.2.0.tgz", "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", - "dev": true, + "devOptional": true, "license": "MIT" }, "node_modules/queue-microtask": { @@ -28626,17 +28960,29 @@ } }, "node_modules/tough-cookie": { - "version": "2.5.0", - "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/tough-cookie/-/tough-cookie-2.5.0.tgz", - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", + "version": "4.1.3", + "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/tough-cookie/-/tough-cookie-4.1.3.tgz", + "integrity": "sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==", "devOptional": true, "license": "BSD-3-Clause", "dependencies": { - "psl": "^1.1.28", - "punycode": "^2.1.1" + "psl": "^1.1.33", + "punycode": "^2.1.1", + "universalify": "^0.2.0", + "url-parse": "^1.5.3" }, "engines": { - "node": ">=0.8" + "node": ">=6" + } + }, + "node_modules/tough-cookie/node_modules/universalify": { + "version": "0.2.0", + "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/universalify/-/universalify-0.2.0.tgz", + "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", + "devOptional": true, + "license": "MIT", + "engines": { + "node": ">= 4.0.0" } }, "node_modules/tr46": { @@ -29509,7 +29855,7 @@ "version": "1.5.10", "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/url-parse/-/url-parse-1.5.10.tgz", "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", - "dev": true, + "devOptional": true, "license": "MIT", "dependencies": { "querystringify": "^2.1.1", @@ -30554,6 +30900,14 @@ "errno": "~0.1.7" } }, + "node_modules/workerpool": { + "version": "6.2.1", + "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/workerpool/-/workerpool-6.2.1.tgz", + "integrity": "sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==", + "dev": true, + "license": "Apache-2.0", + "peer": true + }, "node_modules/wrap-ansi": { "version": "7.0.0", "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/wrap-ansi/-/wrap-ansi-7.0.0.tgz", @@ -30729,6 +31083,48 @@ "node": ">=12" } }, + "node_modules/yargs-unparser": { + "version": "2.0.0", + "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/yargs-unparser/-/yargs-unparser-2.0.0.tgz", + "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "camelcase": "^6.0.0", + "decamelize": "^4.0.0", + "flat": "^5.0.2", + "is-plain-obj": "^2.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs-unparser/node_modules/camelcase": { + "version": "6.3.0", + "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/yargs-unparser/node_modules/is-plain-obj": { + "version": "2.1.0", + "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/is-plain-obj/-/is-plain-obj-2.1.0.tgz", + "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=8" + } + }, "node_modules/yargs/node_modules/cliui": { "version": "8.0.1", "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/cliui/-/cliui-8.0.1.tgz", @@ -32917,9 +33313,9 @@ } }, "@cypress/request": { - "version": "2.88.11", - "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/@cypress/request/-/request-2.88.11.tgz", - "integrity": "sha512-M83/wfQ1EkspjkE2lNWNV5ui2Cv7UCv1swW1DqljahbzLVWltcsexQh8jYtuS/vzFXP+HySntGM83ZXA9fn17w==", + "version": "2.88.12", + "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/@cypress/request/-/request-2.88.12.tgz", + "integrity": "sha512-tOn+0mDZxASFM+cuAP9szGUGPI1HwWVSvdzm7V4cCsPdFTx6qMj29CwaQmRAMIEhORIUBFBsYROYJcveK4uOjA==", "devOptional": true, "requires": { "aws-sign2": "~0.7.0", @@ -32937,7 +33333,7 @@ "performance-now": "^2.1.0", "qs": "~6.10.3", "safe-buffer": "^5.1.2", - "tough-cookie": "~2.5.0", + "tough-cookie": "^4.1.3", "tunnel-agent": "^0.6.0", "uuid": "^8.3.2" } @@ -33690,9 +34086,9 @@ } }, "@cypress/webpack-preprocessor": { - "version": "5.17.0", - "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/@cypress/webpack-preprocessor/-/webpack-preprocessor-5.17.0.tgz", - "integrity": "sha512-HyFqHkrOrIIYOt4G+r3VK0kVYTcev1tEcqBI/0DJ4AzEuEgW/TB+cX56txy4Cgn60XXdJoul2utclZwUqOsPZA==", + "version": "5.17.1", + "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/@cypress/webpack-preprocessor/-/webpack-preprocessor-5.17.1.tgz", + "integrity": "sha512-FE/e8ikPc8z4EVopJCaior3RGy0jd2q9Xcp5NtiwNG4XnLfEnUFTZlAGwXe75sEh4fNMPrBJW1KIz77PX5vGAw==", "dev": true, "requires": { "bluebird": "3.7.1", @@ -37047,9 +37443,9 @@ "integrity": "sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA==" }, "@types/node": { - "version": "16.18.23", - "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/@types/node/-/node-16.18.23.tgz", - "integrity": "sha512-XAMpaw1s1+6zM+jn2tmw8MyaRDIJfXxqmIQIS0HfoGYPuf7dUWeiUKopwq13KFX9lEp1+THGtlaaYx39Nxr58g==" + "version": "16.18.54", + "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/@types/node/-/node-16.18.54.tgz", + "integrity": "sha512-oTmGy68gxZZ21FhTJVVvZBYpQHEBZxHKTsGshobMqm9qWpbqdZsA5jvsuPZcHu0KwpmLrOHWPdEfg7XDpNT9UA==" }, "@types/parse-json": { "version": "4.0.0", @@ -38574,6 +38970,13 @@ "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==", "dev": true }, + "browser-stdout": { + "version": "1.3.1", + "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/browser-stdout/-/browser-stdout-1.3.1.tgz", + "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", + "dev": true, + "peer": true + }, "browserify-aes": { "version": "1.2.0", "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/browserify-aes/-/browserify-aes-1.2.0.tgz", @@ -38835,9 +39238,9 @@ } }, "caniuse-lite": { - "version": "1.0.30001474", - "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/caniuse-lite/-/caniuse-lite-1.0.30001474.tgz", - "integrity": "sha512-iaIZ8gVrWfemh5DG3T9/YqarVZoYf0r188IjaGwx68j4Pf0SGY6CQkmJUIE+NZHkkecQGohzXmBGEwWDr9aM3Q==" + "version": "1.0.30001539", + "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/caniuse-lite/-/caniuse-lite-1.0.30001539.tgz", + "integrity": "sha512-hfS5tE8bnNiNvEOEkm8HElUHroYwlqMMENEzELymy77+tJ6m+gA2krtHl5hxJaj71OlpC2cHZbdSMX1/YEqEkA==" }, "caseless": { "version": "0.12.0", @@ -39163,9 +39566,9 @@ } }, "commander": { - "version": "5.1.0", - "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/commander/-/commander-5.1.0.tgz", - "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==", + "version": "6.2.1", + "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/commander/-/commander-6.2.1.tgz", + "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==", "devOptional": true }, "common-tags": { @@ -39892,14 +40295,14 @@ "dev": true }, "cypress": { - "version": "9.7.0", - "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/cypress/-/cypress-9.7.0.tgz", - "integrity": "sha512-+1EE1nuuuwIt/N1KXRR2iWHU+OiIt7H28jJDyyI4tiUftId/DrXYEwoDa5+kH2pki1zxnA0r6HrUGHV5eLbF5Q==", + "version": "12.17.4", + "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/cypress/-/cypress-12.17.4.tgz", + "integrity": "sha512-gAN8Pmns9MA5eCDFSDJXWKUpaL3IDd89N9TtIupjYnzLSmlpVr+ZR+vb4U/qaMp+lB6tBvAmt7504c3Z4RU5KQ==", "devOptional": true, "requires": { - "@cypress/request": "^2.88.10", + "@cypress/request": "2.88.12", "@cypress/xvfb": "^1.2.4", - "@types/node": "^14.14.31", + "@types/node": "^16.18.39", "@types/sinonjs__fake-timers": "8.1.1", "@types/sizzle": "^2.3.2", "arch": "^2.2.0", @@ -39911,12 +40314,12 @@ "check-more-types": "^2.24.0", "cli-cursor": "^3.1.0", "cli-table3": "~0.6.1", - "commander": "^5.1.0", + "commander": "^6.2.1", "common-tags": "^1.8.0", "dayjs": "^1.10.4", - "debug": "^4.3.2", + "debug": "^4.3.4", "enquirer": "^2.3.6", - "eventemitter2": "^6.4.3", + "eventemitter2": "6.4.7", "execa": "4.1.0", "executable": "^4.1.1", "extract-zip": "2.0.1", @@ -39929,24 +40332,19 @@ "listr2": "^3.8.3", "lodash": "^4.17.21", "log-symbols": "^4.0.0", - "minimist": "^1.2.6", + "minimist": "^1.2.8", "ospath": "^1.2.2", "pretty-bytes": "^5.6.0", + "process": "^0.11.10", "proxy-from-env": "1.0.0", "request-progress": "^3.0.0", - "semver": "^7.3.2", + "semver": "^7.5.3", "supports-color": "^8.1.1", "tmp": "~0.2.1", "untildify": "^4.0.0", "yauzl": "^2.10.0" }, "dependencies": { - "@types/node": { - "version": "14.18.42", - "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/@types/node/-/node-14.18.42.tgz", - "integrity": "sha512-xefu+RBie4xWlK8hwAzGh3npDz/4VhF6icY/shU+zv/1fNn+ZVG7T7CRwe9LId9sAYRPxI+59QBPuKL3WpyGRg==", - "devOptional": true - }, "ansi-styles": { "version": "4.3.0", "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/ansi-styles/-/ansi-styles-4.3.0.tgz", @@ -40016,6 +40414,24 @@ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "devOptional": true }, + "lru-cache": { + "version": "6.0.0", + "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "devOptional": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "semver": { + "version": "7.5.4", + "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "devOptional": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, "supports-color": { "version": "8.1.1", "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/supports-color/-/supports-color-8.1.1.tgz", @@ -40024,6 +40440,12 @@ "requires": { "has-flag": "^4.0.0" } + }, + "yallist": { + "version": "4.0.0", + "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "devOptional": true } } }, @@ -40035,17 +40457,24 @@ "requires": {} }, "cypress-mochawesome-reporter": { - "version": "3.3.0", - "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/cypress-mochawesome-reporter/-/cypress-mochawesome-reporter-3.3.0.tgz", - "integrity": "sha512-X4HU1JpuB62MXLh46660KmIs/L6noWV2KpxaXPDorz1zwgj26NN+BPCLP80D9cCFUwX3hNH0pKFZDwVR7vM8wg==", + "version": "3.6.0", + "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/cypress-mochawesome-reporter/-/cypress-mochawesome-reporter-3.6.0.tgz", + "integrity": "sha512-NeYpeZVB5YCU10I3a1yA2qHt+YREo0jZw4Gj83JTJ7YX/ZLFfd8MYKl2O19d/yYC8np/fpMufp5gt3ympd9DWQ==", "dev": true, "requires": { + "commander": "^10.0.1", "fs-extra": "^10.0.1", "mochawesome": "^7.1.3", "mochawesome-merge": "^4.2.1", "mochawesome-report-generator": "^6.2.0" }, "dependencies": { + "commander": { + "version": "10.0.1", + "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/commander/-/commander-10.0.1.tgz", + "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", + "dev": true + }, "fs-extra": { "version": "10.1.0", "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/fs-extra/-/fs-extra-10.1.0.tgz", @@ -40060,9 +40489,9 @@ } }, "cypress-real-events": { - "version": "1.7.6", - "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/cypress-real-events/-/cypress-real-events-1.7.6.tgz", - "integrity": "sha512-yP6GnRrbm6HK5q4DH6Nnupz37nOfZu/xn1xFYqsE2o4G73giPWQOdu6375QYpwfU1cvHNCgyD2bQ2hPH9D7NMw==", + "version": "1.10.3", + "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/cypress-real-events/-/cypress-real-events-1.10.3.tgz", + "integrity": "sha512-YN3fn+CJIAM638sE6uMvv2/n3PsWowdd0rOiN6ZoyezNAMyENfuQHvccLKZpN+apGfQZYetCml6QXLYgDid2fg==", "dev": true, "requires": {} }, @@ -40132,6 +40561,13 @@ "ms": "2.1.2" } }, + "decamelize": { + "version": "4.0.0", + "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/decamelize/-/decamelize-4.0.0.tgz", + "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", + "dev": true, + "peer": true + }, "decimal.js": { "version": "10.4.3", "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/decimal.js/-/decimal.js-10.4.3.tgz", @@ -41237,9 +41673,9 @@ "dev": true }, "eventemitter2": { - "version": "6.4.9", - "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/eventemitter2/-/eventemitter2-6.4.9.tgz", - "integrity": "sha512-JEPTiaOt9f04oa6NOkc4aH+nVp5I3wEjpHbIPqfgCdD5v5bUzy7xQqwcVO2aDQgOWhI28da57HksMrzK9HlRxg==", + "version": "6.4.7", + "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/eventemitter2/-/eventemitter2-6.4.7.tgz", + "integrity": "sha512-tYUSVOGeQPKt/eC1ABfhHy5Xd96N3oIijJvN3O9+TsC28T5V9yX9oEfEK5faP0EFSNVOG97qtAS68GBrQB2hDg==", "devOptional": true }, "eventemitter3": { @@ -45299,24 +45735,6 @@ "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/parse5/-/parse5-6.0.1.tgz", "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", "dev": true - }, - "tough-cookie": { - "version": "4.1.2", - "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/tough-cookie/-/tough-cookie-4.1.2.tgz", - "integrity": "sha512-G9fqXWoYFZgTc2z8Q5zaHy/vJMjm+WV0AkAeHxVCQiEB1b+dGvWzFW6QV07cY5jQ5gRkeid2qIkzkxUnmoQZUQ==", - "dev": true, - "requires": { - "psl": "^1.1.33", - "punycode": "^2.1.1", - "universalify": "^0.2.0", - "url-parse": "^1.5.3" - } - }, - "universalify": { - "version": "0.2.0", - "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/universalify/-/universalify-0.2.0.tgz", - "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", - "dev": true } } }, @@ -46371,6 +46789,206 @@ "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/mkdirp/-/mkdirp-1.0.4.tgz", "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" }, + "mocha": { + "version": "10.2.0", + "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/mocha/-/mocha-10.2.0.tgz", + "integrity": "sha512-IDY7fl/BecMwFHzoqF2sg/SHHANeBoMMXFlS9r0OXKDssYE1M5O43wUY/9BVPeIvfH2zmEbBfseqN9gBQZzXkg==", + "dev": true, + "peer": true, + "requires": { + "ansi-colors": "4.1.1", + "browser-stdout": "1.3.1", + "chokidar": "3.5.3", + "debug": "4.3.4", + "diff": "5.0.0", + "escape-string-regexp": "4.0.0", + "find-up": "5.0.0", + "glob": "7.2.0", + "he": "1.2.0", + "js-yaml": "4.1.0", + "log-symbols": "4.1.0", + "minimatch": "5.0.1", + "ms": "2.1.3", + "nanoid": "3.3.3", + "serialize-javascript": "6.0.0", + "strip-json-comments": "3.1.1", + "supports-color": "8.1.1", + "workerpool": "6.2.1", + "yargs": "16.2.0", + "yargs-parser": "20.2.4", + "yargs-unparser": "2.0.0" + }, + "dependencies": { + "ansi-colors": { + "version": "4.1.1", + "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/ansi-colors/-/ansi-colors-4.1.1.tgz", + "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", + "dev": true, + "peer": true + }, + "argparse": { + "version": "2.0.1", + "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true, + "peer": true + }, + "escape-string-regexp": { + "version": "4.0.0", + "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "peer": true + }, + "find-up": { + "version": "5.0.0", + "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "peer": true, + "requires": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + } + }, + "glob": { + "version": "7.2.0", + "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "dev": true, + "peer": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "dependencies": { + "minimatch": { + "version": "3.1.2", + "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "peer": true, + "requires": { + "brace-expansion": "^1.1.7" + } + } + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "peer": true + }, + "js-yaml": { + "version": "4.1.0", + "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "peer": true, + "requires": { + "argparse": "^2.0.1" + } + }, + "locate-path": { + "version": "6.0.0", + "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "peer": true, + "requires": { + "p-locate": "^5.0.0" + } + }, + "minimatch": { + "version": "5.0.1", + "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/minimatch/-/minimatch-5.0.1.tgz", + "integrity": "sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==", + "dev": true, + "peer": true, + "requires": { + "brace-expansion": "^2.0.1" + }, + "dependencies": { + "brace-expansion": { + "version": "2.0.1", + "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "peer": true, + "requires": { + "balanced-match": "^1.0.0" + } + } + } + }, + "ms": { + "version": "2.1.3", + "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "peer": true + }, + "p-locate": { + "version": "5.0.0", + "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "peer": true, + "requires": { + "p-limit": "^3.0.2" + } + }, + "serialize-javascript": { + "version": "6.0.0", + "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/serialize-javascript/-/serialize-javascript-6.0.0.tgz", + "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", + "dev": true, + "peer": true, + "requires": { + "randombytes": "^2.1.0" + } + }, + "supports-color": { + "version": "8.1.1", + "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "peer": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "yargs": { + "version": "16.2.0", + "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "peer": true, + "requires": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + } + }, + "yargs-parser": { + "version": "20.2.4", + "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/yargs-parser/-/yargs-parser-20.2.4.tgz", + "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", + "dev": true, + "peer": true + } + } + }, "mochawesome": { "version": "7.1.3", "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/mochawesome/-/mochawesome-7.1.3.tgz", @@ -46796,6 +47414,13 @@ "dev": true, "optional": true }, + "nanoid": { + "version": "3.3.3", + "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/nanoid/-/nanoid-3.3.3.tgz", + "integrity": "sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w==", + "dev": true, + "peer": true + }, "nanomatch": { "version": "1.2.13", "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/nanomatch/-/nanomatch-1.2.13.tgz", @@ -48459,7 +49084,7 @@ "version": "0.11.10", "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/process/-/process-0.11.10.tgz", "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", - "dev": true + "devOptional": true }, "process-nextick-args": { "version": "2.0.1", @@ -48635,7 +49260,7 @@ "version": "2.2.0", "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/querystringify/-/querystringify-2.2.0.tgz", "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", - "dev": true + "devOptional": true }, "queue-microtask": { "version": "1.2.3", @@ -50829,13 +51454,23 @@ "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==" }, "tough-cookie": { - "version": "2.5.0", - "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/tough-cookie/-/tough-cookie-2.5.0.tgz", - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", + "version": "4.1.3", + "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/tough-cookie/-/tough-cookie-4.1.3.tgz", + "integrity": "sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==", "devOptional": true, "requires": { - "psl": "^1.1.28", - "punycode": "^2.1.1" + "psl": "^1.1.33", + "punycode": "^2.1.1", + "universalify": "^0.2.0", + "url-parse": "^1.5.3" + }, + "dependencies": { + "universalify": { + "version": "0.2.0", + "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/universalify/-/universalify-0.2.0.tgz", + "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", + "devOptional": true + } } }, "tr46": { @@ -51422,7 +52057,7 @@ "version": "1.5.10", "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/url-parse/-/url-parse-1.5.10.tgz", "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", - "dev": true, + "devOptional": true, "requires": { "querystringify": "^2.1.1", "requires-port": "^1.0.0" @@ -52181,6 +52816,13 @@ "errno": "~0.1.7" } }, + "workerpool": { + "version": "6.2.1", + "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/workerpool/-/workerpool-6.2.1.tgz", + "integrity": "sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==", + "dev": true, + "peer": true + }, "wrap-ansi": { "version": "7.0.0", "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/wrap-ansi/-/wrap-ansi-7.0.0.tgz", @@ -52304,6 +52946,35 @@ "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/yargs-parser/-/yargs-parser-21.1.1.tgz", "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==" }, + "yargs-unparser": { + "version": "2.0.0", + "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/yargs-unparser/-/yargs-unparser-2.0.0.tgz", + "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==", + "dev": true, + "peer": true, + "requires": { + "camelcase": "^6.0.0", + "decamelize": "^4.0.0", + "flat": "^5.0.2", + "is-plain-obj": "^2.1.0" + }, + "dependencies": { + "camelcase": { + "version": "6.3.0", + "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true, + "peer": true + }, + "is-plain-obj": { + "version": "2.1.0", + "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/is-plain-obj/-/is-plain-obj-2.1.0.tgz", + "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", + "dev": true, + "peer": true + } + } + }, "yauzl": { "version": "2.10.0", "resolved": "http://nexus.ozg-sh.de/repository/npm-proxy/yauzl/-/yauzl-2.10.0.tgz", diff --git a/goofy-client/package.json b/goofy-client/package.json index be70ff2f992f202170ab0f9d3b05369c3bdf0652..2845ef85f7653a7c6373040601dba9ed5646e45a 100644 --- a/goofy-client/package.json +++ b/goofy-client/package.json @@ -34,13 +34,12 @@ "help": "nx help", "favicon": "real-favicon generate favicon/faviconDescription.json favicon/faviconData.json src/favicon", "cypress:run": "npx cypress run --project apps/goofy-e2e", - "cypress:run-main": "npx cypress run --project apps/goofy-e2e --config video=false,integrationFolder=./src/integration/main-tests", - "cypress:run-ea": "npx cypress run --project apps/goofy-e2e --config video=false,integrationFolder=./src/integration/einheitlicher-ansprechpartner", - "cypress:run-minimal": "npx cypress run --project apps/goofy-e2e --config video=false", + "cypress:run-main": "npx cypress run --project apps/goofy-e2e --spec apps/goofy-e2e/src/e2e/main-tests", + "cypress:run-ea": "npx cypress run --project apps/goofy-e2e --spec apps/goofy-e2e/src/e2e/einheitlicher-ansprechpartner", "cypress:version": "npx cypress version", "cypress:install": "npx cypress install", "cypress:open": "npx cypress open --project apps/goofy-e2e", - "cypress:ci-run": "npm run cypress:delete-old-reports --REPORT_FOLDER=${npm_config_report_folder} ; NO_COLOR=1 npm run cypress:run -- --config-file ./${npm_config_config_file} ; test=$(echo \"$?\") ; npm run cypress:pre-merge --REPORT_FOLDER=${npm_config_report_folder} ; npm run cypress:generate-report --REPORT_FOLDER=${npm_config_report_folder} ; exit $test", + "cypress:ci-run": "npm run cypress:delete-old-reports --REPORT_FOLDER=${npm_config_report_folder} ; NO_COLOR=1 npm run cypress:run -- --config-file=${npm_config_config} ; test=$(echo \"$?\") ; npm run cypress:pre-merge --REPORT_FOLDER=${npm_config_report_folder} ; npm run cypress:generate-report --REPORT_FOLDER=${npm_config_report_folder} ; exit $test", "cypress:delete-old-reports": "REPORT_FOLDER=${npm_config_report_folder} node apps/goofy-e2e/src/support/delete-old-reports.ts", "cypress:pre-merge": "REPORT_FOLDER=${npm_config_report_folder} node apps/goofy-e2e/src/support/pre-merge.ts", "cypress:generate-report": "npm run cypress:merge-report --REPORT_FOLDER=${npm_config_report_folder} ; npm run cypress:generate-html --REPORT_FOLDER=${npm_config_report_folder}", @@ -91,8 +90,8 @@ "@angular/compiler-cli": "15.1.4", "@angular/language-service": "15.1.4", "@bahmutov/cypress-extends": "1.1.0", - "@cypress/webpack-batteries-included-preprocessor": "^2.3.0", - "@cypress/webpack-preprocessor": "^5.16.3", + "@cypress/webpack-batteries-included-preprocessor": "^2.4.1", + "@cypress/webpack-preprocessor": "^5.17.1", "@faker-js/faker": "^6.3.1", "@ngrx/schematics": "15.0.0", "@ngrx/store-devtools": "15.0.0", @@ -109,10 +108,10 @@ "@types/node": "^16.18.1", "@typescript-eslint/eslint-plugin": "5.44.0", "@typescript-eslint/parser": "5.44.0", - "cypress": "^9.7.0", + "cypress": "^12.17.4", "cypress-file-upload": "5.0.8", - "cypress-mochawesome-reporter": "3.3.0", - "cypress-real-events": "^1.7.6", + "cypress-mochawesome-reporter": "3.6.0", + "cypress-real-events": "^1.10.3", "cypress-timestamps": "^1.2.3", "eslint": "8.15.0", "eslint-config-prettier": "8.3.0",