From 65fe9924cd821d2b284fd3c312eb5bd93896e23c Mon Sep 17 00:00:00 2001
From: OZGCloud <ozgcloud@mgm-tp.com>
Date: Mon, 13 Dec 2021 16:27:22 +0100
Subject: [PATCH] OZG-1772 OZG-1840 create config/script for ea/ci-ea; add
 dependency @bahmutov/cypress-extends to avoid redundance

---
 Jenkinsfile                                   |  2 +-
 goofy-client/apps/goofy-e2e/cypress-ci.json   | 13 +-----------
 goofy-client/apps/goofy-e2e/cypress.json      | 10 ++++-----
 goofy-client/apps/goofy-e2e/ea-ci-config.json | 18 +---------------
 goofy-client/apps/goofy-e2e/ea-config.json    | 17 +++++++++++++++
 .../apps/goofy-e2e/src/plugins/index.js       |  1 +
 goofy-client/package-lock.json                | 21 +++++++++++++++++++
 goofy-client/package.json                     |  8 ++++---
 8 files changed, 52 insertions(+), 38 deletions(-)
 create mode 100644 goofy-client/apps/goofy-e2e/ea-config.json

diff --git a/Jenkinsfile b/Jenkinsfile
index bbee81183d..7dd860a81a 100644
--- a/Jenkinsfile
+++ b/Jenkinsfile
@@ -168,7 +168,7 @@ pipeline {
                 container("cypress") {
                     dir('goofy-client') {
                         sh 'npm run cypress:version'
-                        sh 'npm run cypress:ci-ea-run'
+                        sh 'npm run cypress:ci-ea-run --BASE_URL=https://e2e.dev.ozg-sh.de'//TODO: durch eine dynamische url ersetzen
                     }
                 }
             }
diff --git a/goofy-client/apps/goofy-e2e/cypress-ci.json b/goofy-client/apps/goofy-e2e/cypress-ci.json
index e9ae33f9b5..ba686d407c 100644
--- a/goofy-client/apps/goofy-e2e/cypress-ci.json
+++ b/goofy-client/apps/goofy-e2e/cypress-ci.json
@@ -1,4 +1,5 @@
 {
+	"extends": "./cypress.config",
 	"baseUrl": "https://e2e.dev.ozg-sh.de",
 	"env": {
 		"dbUrl": "mongodb+srv://pluto-database-user:XnHhfznNWg65NNd@pluto-database-svc.sh-e2e-dev.svc.cluster.local/admin?ssl=false",
@@ -7,18 +8,6 @@
 		"keycloakUrl": "https://sso.dev.ozg-sh.de/",
 		"keycloakClient": "sh-e2e-dev-goofy"
 	},
-	"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,
 	"reporterOptions": {
 		"html": false,
 		"json": true,
diff --git a/goofy-client/apps/goofy-e2e/cypress.json b/goofy-client/apps/goofy-e2e/cypress.json
index ec5266e69b..9f2c2906f6 100644
--- a/goofy-client/apps/goofy-e2e/cypress.json
+++ b/goofy-client/apps/goofy-e2e/cypress.json
@@ -1,11 +1,11 @@
 {
 	"baseUrl": "http://localhost:4300",
 	"env": {
-	  "dbUrl": "mongodb://localhost:27018",
-	  "database": "test",
-	  "keycloakRealm": "sh-e2e-dev",
-	  "keycloakUrl": "https://sso.dev.ozg-sh.de/",
-	  "keycloakClient": "sh-e2e-dev-goofy"
+		"dbUrl": "mongodb://localhost:27018",
+		"database": "test",
+		"keycloakRealm": "sh-e2e-dev",
+		"keycloakUrl": "https://sso.dev.ozg-sh.de/",
+		"keycloakClient": "sh-e2e-dev-goofy"
 	},
 	"fileServerFolder": ".",
 	"fixturesFolder": "./src/fixtures",
diff --git a/goofy-client/apps/goofy-e2e/ea-ci-config.json b/goofy-client/apps/goofy-e2e/ea-ci-config.json
index 1073f57210..2702bbef5e 100644
--- a/goofy-client/apps/goofy-e2e/ea-ci-config.json
+++ b/goofy-client/apps/goofy-e2e/ea-ci-config.json
@@ -1,24 +1,8 @@
 {
-	"baseUrl": "https://e2e.dev.ozg-sh.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": "sh-e2e-dev",
-		"keycloakUrl": "https://sso.dev.ozg-sh.de/",
-		"keycloakClient": "sh-e2e-dev-goofy"
-	},
-	"fileServerFolder": ".",
-	"fixturesFolder": "./src/fixtures",
+	"extends": "./cypress-ci.json",
 	"integrationFolder": "./src/integration_einheitlicher-ansprechpartner",
-	"modifyObstructiveCode": false,
-	"pluginsFile": "./src/plugins/index",
-	"supportFile": "./src/support/index.ts",
-	"video": true,
 	"videosFolder": "./reports/videos/einheitlicher-ansprechpartner",
 	"screenshotsFolder": "./reports/screenshots/einheitlicher-ansprechpartner",
-	"chromeWebSecurity": false,
-	"reporter": "../../node_modules/cypress-mochawesome-reporter",
-	"defaultCommandTimeout": 10000,
 	"reporterOptions": {
 		"html": false,
 		"json": true,
diff --git a/goofy-client/apps/goofy-e2e/ea-config.json b/goofy-client/apps/goofy-e2e/ea-config.json
new file mode 100644
index 0000000000..1c29cd35fe
--- /dev/null
+++ b/goofy-client/apps/goofy-e2e/ea-config.json
@@ -0,0 +1,17 @@
+{
+	"extends": "./cypress.json",
+	"fixturesFolder": "./src/fixtures",
+	"integrationFolder": "./src/integration_einheitlicher-ansprechpartner",
+	"pluginsFile": "./src/plugins/index",
+	"videosFolder": "./reports/videos/einheitlicher-ansprechpartner",
+	"screenshotsFolder": "./reports/screenshots/einheitlicher-ansprechpartner",
+	"reporter": "../../node_modules/cypress-mochawesome-reporter",
+	"reporterOptions": {
+		"html": false,
+		"json": true,
+		"quite": true,
+		"reportDir": "./reports/mochawesome-report",
+		"reportFilename": "report-einheitlicher-ansprechpartner",
+		"overwrite": false
+	}
+}
\ No newline at end of file
diff --git a/goofy-client/apps/goofy-e2e/src/plugins/index.js b/goofy-client/apps/goofy-e2e/src/plugins/index.js
index 10fec50576..1c890b4704 100644
--- a/goofy-client/apps/goofy-e2e/src/plugins/index.js
+++ b/goofy-client/apps/goofy-e2e/src/plugins/index.js
@@ -42,6 +42,7 @@ module.exports = (on, config) => {
 			return 0;
 		}
 	});
+	return require('@bahmutov/cypress-extends')(config.configFile);
 };
 
 function parseBinaryFileData(binaryFiles) {
diff --git a/goofy-client/package-lock.json b/goofy-client/package-lock.json
index fc17d380f1..44bc1f4438 100644
--- a/goofy-client/package-lock.json
+++ b/goofy-client/package-lock.json
@@ -1870,6 +1870,27 @@
 				"to-fast-properties": "^2.0.0"
 			}
 		},
+		"@bahmutov/cypress-extends": {
+			"version": "1.1.0",
+			"resolved": "https://registry.npmjs.org/@bahmutov/cypress-extends/-/cypress-extends-1.1.0.tgz",
+			"integrity": "sha512-S8bF5GJ2X5b2DvlzhscCnY/a9e2fA0KgGjbYFqbENOisy2cjyZ9D7BWf7li0mw4FBAVnnsTMFza/9rhWStzD/g==",
+			"dev": true,
+			"requires": {
+				"debug": "4.1.1",
+				"deepmerge": "4.2.2"
+			},
+			"dependencies": {
+				"debug": {
+					"version": "4.1.1",
+					"resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
+					"integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
+					"dev": true,
+					"requires": {
+						"ms": "^2.1.1"
+					}
+				}
+			}
+		},
 		"@bcoe/v8-coverage": {
 			"version": "0.2.3",
 			"resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz",
diff --git a/goofy-client/package.json b/goofy-client/package.json
index 4e6dfe6126..ef945e8195 100644
--- a/goofy-client/package.json
+++ b/goofy-client/package.json
@@ -33,7 +33,8 @@
     "dep-graph": "nx dep-graph",
     "help": "nx help",
     "favicon": "real-favicon generate favicon/faviconDescription.json favicon/faviconData.json src/favicon",
-    "cypress:open": "npx cypress open --project apps/goofy-e2e",
+    "cypress:open": "export CYPRESS_BASE_URL=http://localhost:4300 ; npx cypress open --project apps/goofy-e2e",
+    "cypress:open-ea": "export CYPRESS_BASE_URL=http://localhost:4300 ; npx cypress open --project apps/goofy-e2e --config-file ./ea-config.json",
     "cypress:run": "npx cypress run --project apps/goofy-e2e",
     "cypress:version": "npx cypress version",
     "cypress:merge-report": "mochawesome-merge apps/goofy-e2e/reports/mochawesome-report/**/*.json > apps/goofy-e2e/reports/report.json",
@@ -41,8 +42,8 @@
     "cypress:delete-old-reports": "node apps/goofy-e2e/src/support/delete-old-reports.ts",
     "cypress:pre-merge": "node apps/goofy-e2e/src/support/pre-merge.ts",
     "cypress:generate-report": "npm run cypress:merge-report ; npm run cypress:generate-html",
-    "cypress:ci-run": "npm run cypress:delete-old-reports ; npm run cypress:run -- --config-file ./cypress-ci.json ; test=$(echo \"$?\") ; npm run cypress:pre-merge ; npm run cypress:generate-report ; exit $test",
-	"cypress:ci-ea-run": "npm run cypress:delete-old-reports ; npm run cypress:run -- --config-file ./ea-ci-config.json ; test=$(echo \"$?\") ; npm run cypress:pre-merge ; npm run cypress:generate-report ; exit $test",
+    "cypress:ci-run": "export CYPRESS_BASE_URL=https://e2e.dev.ozg-sh.de ; npm run cypress:delete-old-reports ; npm run cypress:run -- --config-file ./cypress-ci.json ; test=$(echo \"$?\") ; npm run cypress:pre-merge ; npm run cypress:generate-report ; exit $test",
+    "cypress:ci-ea-run": "export CYPRESS_BASE_URL=$npm_config_BASE_URL ; npm run cypress:delete-old-reports ; npm run cypress:run -- --config-file ./ea-ci-config.json ; test=$(echo \"$?\") ; npm run cypress:pre-merge ; npm run cypress:generate-report ; exit $test",
     "workspace-generator": "nx workspace-generator",
     "sonar-scanner": "npm test -- --testResultsProcessor='jest-sonar-reporter' && sonar-scanner -Dsonar.host.url=https://sonarqube.ozg-sh.de/ -Dsonar.login=364c6e09430714838730a83f55d3369a7ffda0e9"
   },
@@ -86,6 +87,7 @@
     "@angular/cli": "12.2.12",
     "@angular/compiler-cli": "12.2.12",
     "@angular/language-service": "12.2.12",
+    "@bahmutov/cypress-extends": "1.1.0",
     "@nrwl/cli": "13.1.3",
     "@nrwl/cypress": "13.1.3",
     "@nrwl/eslint-plugin-nx": "13.1.3",
-- 
GitLab