From 9106f45f53a15aa735d179cf4fbccc6dfb88114e Mon Sep 17 00:00:00 2001 From: Stepan Vladovskiy Date: Wed, 3 Jul 2024 22:48:37 +0000 Subject: [PATCH 01/13] feat: with e2e tests in github workflow node-ci --- .github/workflows/node-ci.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.github/workflows/node-ci.yml b/.github/workflows/node-ci.yml index 4725a703..2a72f312 100644 --- a/.github/workflows/node-ci.yml +++ b/.github/workflows/node-ci.yml @@ -26,3 +26,9 @@ jobs: - name: Test production build run: npm run build + + - name: Install e2e test dependencies + run: npm run e2e:install + + - name: Run e2e tests + run: npm run e2e:tests From 24f4a22110664ca6af3265dbc92b5c6ac9c0603f Mon Sep 17 00:00:00 2001 From: Stepan Vladovskiy Date: Wed, 3 Jul 2024 23:18:21 +0000 Subject: [PATCH 02/13] fix: need to deploy before e2e. Right now without e2e --- .github/workflows/node-ci.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/node-ci.yml b/.github/workflows/node-ci.yml index 2a72f312..56e2a472 100644 --- a/.github/workflows/node-ci.yml +++ b/.github/workflows/node-ci.yml @@ -27,8 +27,8 @@ jobs: - name: Test production build run: npm run build - - name: Install e2e test dependencies - run: npm run e2e:install +# - name: Install e2e test dependencies +# run: npm run e2e:install - - name: Run e2e tests - run: npm run e2e:tests +# - name: Run e2e tests +# run: npm run e2e:tests From 0e5cc906489c28c017717dcecf30192b53d6afbf Mon Sep 17 00:00:00 2001 From: Stepan Vladovskiy Date: Wed, 3 Jul 2024 23:33:49 +0000 Subject: [PATCH 03/13] fix: with http-server start on github actions --- .github/workflows/node-ci.yml | 15 +- package-lock.json | 258 ++-------------------------------- 2 files changed, 24 insertions(+), 249 deletions(-) diff --git a/.github/workflows/node-ci.yml b/.github/workflows/node-ci.yml index 56e2a472..1af1f969 100644 --- a/.github/workflows/node-ci.yml +++ b/.github/workflows/node-ci.yml @@ -27,8 +27,19 @@ jobs: - name: Test production build run: npm run build -# - name: Install e2e test dependencies -# run: npm run e2e:install + - name: Install http-server + run: npm install -g http-server + + - name: Install e2e test dependencies + run: npm run e2e:install + + - name: Serve the build directory + run: http-server ./dist -p 8080 & + # Adjust "./build" to your build output directory # - name: Run e2e tests # run: npm run e2e:tests + + - name: Run e2e tests + run: npm run e2e:tests -- --baseUrl http://localhost:8080 + # Ensure your e2e tests can accept a baseUrl parameter diff --git a/package-lock.json b/package-lock.json index 1cfe29f4..1164a507 100644 --- a/package-lock.json +++ b/package-lock.json @@ -23,10 +23,10 @@ "@hocuspocus/provider": "^2.13.2", "@playwright/test": "^1.44.1", "@popperjs/core": "^2.11.8", - "@solid-devtools/transform": "^0.10.4", "@solid-primitives/media": "^2.2.9", "@solid-primitives/memo": "^1.3.8", "@solid-primitives/pagination": "^0.3.0", + "@solid-primitives/script-loader": "^2.2.0", "@solid-primitives/share": "^2.0.6", "@solid-primitives/storage": "^3.7.1", "@solid-primitives/upload": "^0.0.117", @@ -5026,120 +5026,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@solid-devtools/debugger": { - "version": "0.18.1", - "resolved": "https://registry.npmjs.org/@solid-devtools/debugger/-/debugger-0.18.1.tgz", - "integrity": "sha512-PFbf3+t5ua/v9HpnYOo24NIIM/pf/ZUFYF26YWy8qq2ddRbkKL87nmG5gDGvtgK7lVV3GM3O01fdq4YnSG1SYg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@solid-devtools/shared": "^0.10.5", - "@solid-primitives/bounds": "^0.0.105", - "@solid-primitives/cursor": "^0.0.103", - "@solid-primitives/event-bus": "^0.1.3", - "@solid-primitives/event-listener": "^2.2.3", - "@solid-primitives/keyboard": "^1.0.3", - "@solid-primitives/platform": "^0.0.102", - "@solid-primitives/scheduled": "^1.2.0", - "@solid-primitives/utils": "^4.0.0", - "type-fest": "^3.2.0" - }, - "peerDependencies": { - "solid-js": "^1.6.2" - } - }, - "node_modules/@solid-devtools/shared": { - "version": "0.10.6", - "resolved": "https://registry.npmjs.org/@solid-devtools/shared/-/shared-0.10.6.tgz", - "integrity": "sha512-UfLERQMxULRl2GoNc/Y1fMkRp71uTk/56dksowRLMdsyFpH3vqKr3+AHfm/2tXI/XeRAvXsXhC90zpVff5y+Hg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@solid-primitives/event-bus": "^0.1.3", - "@solid-primitives/event-listener": "^2.2.3", - "@solid-primitives/media": "^2.0.3", - "@solid-primitives/refs": "^0.3.4", - "@solid-primitives/rootless": "^1.2.0", - "@solid-primitives/scheduled": "^1.1.0", - "@solid-primitives/styles": "^0.0.101", - "@solid-primitives/utils": "^4.0.0", - "type-fest": "^3.2.0" - }, - "peerDependencies": { - "solid-js": "^1.6.2" - } - }, - "node_modules/@solid-devtools/transform": { - "version": "0.10.4", - "resolved": "https://registry.npmjs.org/@solid-devtools/transform/-/transform-0.10.4.tgz", - "integrity": "sha512-r8JzHMmBFgaFy+FQVQdvNpTX8L3zwuiW1/puV3VHyaw1FpODmdmkbOnQgUQgHqN/X1LLPzTMtVGKLcDmJJOQbQ==", - "deprecated": "vite plugin has been moved entirely to 'solid-devtools' pacakge.", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/core": "^7.20.7", - "@babel/plugin-syntax-typescript": "^7.18.6", - "@babel/types": "^7.20.7", - "@solid-devtools/debugger": "^0.18.0", - "@solid-devtools/shared": "^0.10.5" - }, - "peerDependencies": { - "solid-js": "^1.6.2", - "vite": "^2.2.3 || ^3.0.0 || ^4.0.0" - } - }, - "node_modules/@solid-primitives/bounds": { - "version": "0.0.105", - "resolved": "https://registry.npmjs.org/@solid-primitives/bounds/-/bounds-0.0.105.tgz", - "integrity": "sha512-a2ZRuZayXV1/kSKx8cEOR5pIs2zKAF9lS3Gj/r7uHmBQBmn25GYCYOwj4LbLQbqqbumZr2eJO+/wDyi4UOX5pw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@solid-primitives/event-listener": "^2.2.4", - "@solid-primitives/resize-observer": "^2.0.6", - "@solid-primitives/utils": "^4.0.0" - }, - "peerDependencies": { - "solid-js": "^1.6.0" - } - }, - "node_modules/@solid-primitives/cursor": { - "version": "0.0.103", - "resolved": "https://registry.npmjs.org/@solid-primitives/cursor/-/cursor-0.0.103.tgz", - "integrity": "sha512-bb5x5lCimBf7R2VqrrMVcP2y/aGTMjNj7fjvY+RvTAC3/WtG/odqeYwka4lCBV27pX9TiJCKtNS6mVTigdfLMA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@solid-primitives/utils": "^4.0.0" - }, - "peerDependencies": { - "solid-js": "^1.6.0" - } - }, - "node_modules/@solid-primitives/event-bus": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/@solid-primitives/event-bus/-/event-bus-0.1.6.tgz", - "integrity": "sha512-UGtBU5zDyjSYnX0BjaYFcs1XfRD6BDN6VEJi4ydxePaUEKlloOG53BsLZjFgTux8cMEmJAaHjoJQH3/SBt3zcw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@solid-primitives/immutable": "^0.1.6", - "@solid-primitives/utils": "^5.0.0" - }, - "peerDependencies": { - "solid-js": "^1.6.0" - } - }, - "node_modules/@solid-primitives/event-bus/node_modules/@solid-primitives/utils": { - "version": "5.5.2", - "resolved": "https://registry.npmjs.org/@solid-primitives/utils/-/utils-5.5.2.tgz", - "integrity": "sha512-L52ig3eHKU6CqbPCKJIb4lweBuINHBOERcE1duApyKozEN8+zCqEKwD1Qo9ljKeEzJTBGWClxNpwEiNTUWTGvg==", - "dev": true, - "license": "MIT", - "peerDependencies": { - "solid-js": "^1.6.12" - } - }, "node_modules/@solid-primitives/event-listener": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/@solid-primitives/event-listener/-/event-listener-2.3.3.tgz", @@ -5163,54 +5049,6 @@ "solid-js": "^1.6.12" } }, - "node_modules/@solid-primitives/immutable": { - "version": "0.1.10", - "resolved": "https://registry.npmjs.org/@solid-primitives/immutable/-/immutable-0.1.10.tgz", - "integrity": "sha512-5XkiiBGSuUaoG2HFei1bG2eDyUwsj/b6IBP7ggm4UMU5mM/APz1u7e3rzMyPn5zVqnHT3oRSbj3UDPNYb5Y9Qg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@solid-primitives/utils": "^6.0.0" - }, - "peerDependencies": { - "solid-js": "^1.6.12" - } - }, - "node_modules/@solid-primitives/immutable/node_modules/@solid-primitives/utils": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/@solid-primitives/utils/-/utils-6.2.3.tgz", - "integrity": "sha512-CqAwKb2T5Vi72+rhebSsqNZ9o67buYRdEJrIFzRXz3U59QqezuuxPsyzTSVCacwS5Pf109VRsgCJQoxKRoECZQ==", - "dev": true, - "license": "MIT", - "peerDependencies": { - "solid-js": "^1.6.12" - } - }, - "node_modules/@solid-primitives/keyboard": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@solid-primitives/keyboard/-/keyboard-1.2.8.tgz", - "integrity": "sha512-pJtcbkjozS6L1xvTht9rPpyPpX55nAkfBzbFWdf3y0Suwh6qClTibvvObzKOf7uzQ+8aZRDH4LsoGmbTKXtJjQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@solid-primitives/event-listener": "^2.3.3", - "@solid-primitives/rootless": "^1.4.5", - "@solid-primitives/utils": "^6.2.3" - }, - "peerDependencies": { - "solid-js": "^1.6.12" - } - }, - "node_modules/@solid-primitives/keyboard/node_modules/@solid-primitives/utils": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/@solid-primitives/utils/-/utils-6.2.3.tgz", - "integrity": "sha512-CqAwKb2T5Vi72+rhebSsqNZ9o67buYRdEJrIFzRXz3U59QqezuuxPsyzTSVCacwS5Pf109VRsgCJQoxKRoECZQ==", - "dev": true, - "license": "MIT", - "peerDependencies": { - "solid-js": "^1.6.12" - } - }, "node_modules/@solid-primitives/media": { "version": "2.2.9", "resolved": "https://registry.npmjs.org/@solid-primitives/media/-/media-2.2.9.tgz", @@ -5284,67 +5122,6 @@ "solid-js": "^1.6.12" } }, - "node_modules/@solid-primitives/platform": { - "version": "0.0.102", - "resolved": "https://registry.npmjs.org/@solid-primitives/platform/-/platform-0.0.102.tgz", - "integrity": "sha512-1eZA1/HYOhmlZ9LrrGot+LUi/ypO2NXqfB+9F1WY98dGNDMz9pG9k+X7kg2YDJTUHDGbzY7WrsBRyAE8LurE7Q==", - "dev": true, - "license": "MIT", - "peerDependencies": { - "solid-js": "^1.5.0" - } - }, - "node_modules/@solid-primitives/refs": { - "version": "0.3.7", - "resolved": "https://registry.npmjs.org/@solid-primitives/refs/-/refs-0.3.7.tgz", - "integrity": "sha512-aqidj/Sw5b2FvXgvNP8zH5HC2jEzDbFju+xRUCxZguaBmDJJyzec12fpZ9JV6SiWCyk08nZ/N4rfPNQnt1af1Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "@solid-primitives/immutable": "^0.1.7", - "@solid-primitives/rootless": "^1.2.5", - "@solid-primitives/utils": "^5.2.1" - }, - "peerDependencies": { - "solid-js": "^1.6.0" - } - }, - "node_modules/@solid-primitives/refs/node_modules/@solid-primitives/utils": { - "version": "5.5.2", - "resolved": "https://registry.npmjs.org/@solid-primitives/utils/-/utils-5.5.2.tgz", - "integrity": "sha512-L52ig3eHKU6CqbPCKJIb4lweBuINHBOERcE1duApyKozEN8+zCqEKwD1Qo9ljKeEzJTBGWClxNpwEiNTUWTGvg==", - "dev": true, - "license": "MIT", - "peerDependencies": { - "solid-js": "^1.6.12" - } - }, - "node_modules/@solid-primitives/resize-observer": { - "version": "2.0.25", - "resolved": "https://registry.npmjs.org/@solid-primitives/resize-observer/-/resize-observer-2.0.25.tgz", - "integrity": "sha512-jVDXkt2MiriYRaz4DYs62185d+6jQ+1DCsR+v7f6XMsIJJuf963qdBRFjtZtKXBaxdPNMyuPeDgf5XQe3EoDJg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@solid-primitives/event-listener": "^2.3.3", - "@solid-primitives/rootless": "^1.4.5", - "@solid-primitives/static-store": "^0.0.8", - "@solid-primitives/utils": "^6.2.3" - }, - "peerDependencies": { - "solid-js": "^1.6.12" - } - }, - "node_modules/@solid-primitives/resize-observer/node_modules/@solid-primitives/utils": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/@solid-primitives/utils/-/utils-6.2.3.tgz", - "integrity": "sha512-CqAwKb2T5Vi72+rhebSsqNZ9o67buYRdEJrIFzRXz3U59QqezuuxPsyzTSVCacwS5Pf109VRsgCJQoxKRoECZQ==", - "dev": true, - "license": "MIT", - "peerDependencies": { - "solid-js": "^1.6.12" - } - }, "node_modules/@solid-primitives/rootless": { "version": "1.4.5", "resolved": "https://registry.npmjs.org/@solid-primitives/rootless/-/rootless-1.4.5.tgz", @@ -5378,6 +5155,16 @@ "solid-js": "^1.6.12" } }, + "node_modules/@solid-primitives/script-loader": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@solid-primitives/script-loader/-/script-loader-2.2.0.tgz", + "integrity": "sha512-PlQEcdpvhtWUsceDp1Miyn49v74QNx/Xv7bpdqVTL6GvvQNuXF0qtpDrOZ+jZvOQiHLlnzNWrBk6YdWwenqcnw==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "solid-js": "^1.6.12" + } + }, "node_modules/@solid-primitives/share": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/@solid-primitives/share/-/share-2.0.6.tgz", @@ -5443,19 +5230,6 @@ "solid-js": "^1.6.12" } }, - "node_modules/@solid-primitives/styles": { - "version": "0.0.101", - "resolved": "https://registry.npmjs.org/@solid-primitives/styles/-/styles-0.0.101.tgz", - "integrity": "sha512-tHkeUMntlS/w+/zDzXJv82hhMy3J3q7tVV3ZTbahRo0hZienAM8ZJrCYZNK/fu2px8NHVSZFRufxv9qhIclPTw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@solid-primitives/rootless": "^1.2.0" - }, - "peerDependencies": { - "solid-js": "^1.5.0" - } - }, "node_modules/@solid-primitives/transition-group": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/@solid-primitives/transition-group/-/transition-group-1.0.5.tgz", @@ -5489,16 +5263,6 @@ "solid-js": "^1.6.12" } }, - "node_modules/@solid-primitives/utils": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@solid-primitives/utils/-/utils-4.0.1.tgz", - "integrity": "sha512-06fSyBair7ZxCquMjIqJes29aNg65X776TVw4EUN7PBtdWsGUeIZ9F/H4ek7yrDSxaSDaPHeye5knEYsYAq2gA==", - "dev": true, - "license": "MIT", - "peerDependencies": { - "solid-js": "^1.6.0" - } - }, "node_modules/@solidjs/meta": { "version": "0.29.4", "resolved": "https://registry.npmjs.org/@solidjs/meta/-/meta-0.29.4.tgz", From b36983b58376d159e7ab6484c97f5ac40212618b Mon Sep 17 00:00:00 2001 From: Stepan Vladovskiy Date: Wed, 3 Jul 2024 23:38:53 +0000 Subject: [PATCH 04/13] fix: with not global http-serv install. Fingercross and last try' --- .github/workflows/node-ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/node-ci.yml b/.github/workflows/node-ci.yml index 1af1f969..345698ce 100644 --- a/.github/workflows/node-ci.yml +++ b/.github/workflows/node-ci.yml @@ -28,13 +28,13 @@ jobs: run: npm run build - name: Install http-server - run: npm install -g http-server + run: npm install http-server - name: Install e2e test dependencies run: npm run e2e:install - name: Serve the build directory - run: http-server ./dist -p 8080 & + run: npx http-server ./dist -p 8080 & # Adjust "./build" to your build output directory # - name: Run e2e tests From f7294c96d12993cafcfd8d34b2a78a187fc8194b Mon Sep 17 00:00:00 2001 From: Stepan Vladovskiy Date: Wed, 3 Jul 2024 23:46:46 +0000 Subject: [PATCH 05/13] fix: separated e2e tests in mode of local testing and CI testing --- .github/workflows/node-ci.yml | 2 +- package.json | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/node-ci.yml b/.github/workflows/node-ci.yml index 345698ce..34dfd5d3 100644 --- a/.github/workflows/node-ci.yml +++ b/.github/workflows/node-ci.yml @@ -41,5 +41,5 @@ jobs: # run: npm run e2e:tests - name: Run e2e tests - run: npm run e2e:tests -- --baseUrl http://localhost:8080 + run: npm run e2e:tests:ci # Ensure your e2e tests can accept a baseUrl parameter diff --git a/package.json b/package.json index 7fbda3cc..3819eea1 100644 --- a/package.json +++ b/package.json @@ -10,6 +10,7 @@ "start": "vinxi start", "codegen": "graphql-codegen", "e2e:tests": "npx playwright test --project=webkit", + "e2e:tests:ci": "BASE_URL=http://staging.example.com npx playwright test --project=webkit", "e2e:install": "npx playwright install webkit && npx playwright install-deps ", "fix": "npx @biomejs/biome check . --fix && stylelint **/*.{scss,css} --fix", "format": "npx @biomejs/biome format src/. --write", From 272d9caa67ceb2680561da7c7a234aafbb14f271 Mon Sep 17 00:00:00 2001 From: Stepan Vladovskiy Date: Wed, 3 Jul 2024 23:49:30 +0000 Subject: [PATCH 06/13] fix: default value changed to actual ip:port config in packges --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 3819eea1..86a625aa 100644 --- a/package.json +++ b/package.json @@ -10,7 +10,7 @@ "start": "vinxi start", "codegen": "graphql-codegen", "e2e:tests": "npx playwright test --project=webkit", - "e2e:tests:ci": "BASE_URL=http://staging.example.com npx playwright test --project=webkit", + "e2e:tests:ci": "BASE_URL=http://127.0.0.1:8080 npx playwright test --project=webkit", "e2e:install": "npx playwright install webkit && npx playwright install-deps ", "fix": "npx @biomejs/biome check . --fix && stylelint **/*.{scss,css} --fix", "format": "npx @biomejs/biome format src/. --write", From bd4aa9c0ac94608804ce20c3639bcd16f68f8669 Mon Sep 17 00:00:00 2001 From: Stepan Vladovskiy Date: Thu, 4 Jul 2024 00:17:48 +0000 Subject: [PATCH 07/13] feat: if start e2e script is has CI var set to any, than playwright not checks local http is run and dont truing to run local dev on --- package.json | 2 +- playwright.config.ts | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 86a625aa..247ff896 100644 --- a/package.json +++ b/package.json @@ -10,7 +10,7 @@ "start": "vinxi start", "codegen": "graphql-codegen", "e2e:tests": "npx playwright test --project=webkit", - "e2e:tests:ci": "BASE_URL=http://127.0.0.1:8080 npx playwright test --project=webkit", + "e2e:tests:ci": "CI=true BASE_URL=http://127.0.0.1:8080 npx playwright test --project=webkit", "e2e:install": "npx playwright install webkit && npx playwright install-deps ", "fix": "npx @biomejs/biome check . --fix && stylelint **/*.{scss,css} --fix", "format": "npx @biomejs/biome format src/. --write", diff --git a/playwright.config.ts b/playwright.config.ts index 0d7f20e1..15b5acdd 100644 --- a/playwright.config.ts +++ b/playwright.config.ts @@ -65,7 +65,8 @@ export default defineConfig({ ], /* Run local dev server before starting the tests */ - webServer: { + /* If process env CI is set to false */ + webServer: process.env.CI ? undefined :{ command: 'npm run dev', url: 'https://localhost:3000', ignoreHTTPSErrors: true, From 49d6f177796b699dd641f55bebd666742fb3ff4d Mon Sep 17 00:00:00 2001 From: Stepan Vladovskiy Date: Thu, 4 Jul 2024 00:29:23 +0000 Subject: [PATCH 08/13] feat: playwright tests withability tio test running or not server not lonly in localhost mode --- tests/auth-drafts-actions.spec.ts | 4 +++- tests/auth-topics-actions.spec.ts | 4 +++- tests/auth-user-actions.spec.ts | 4 +++- tests/basic-routes.spec.ts | 21 ------------------ tests/basic-routes.test.js | 37 ------------------------------- tests/page-sections.spec.ts | 4 +++- 6 files changed, 12 insertions(+), 62 deletions(-) delete mode 100644 tests/basic-routes.spec.ts delete mode 100644 tests/basic-routes.test.js diff --git a/tests/auth-drafts-actions.spec.ts b/tests/auth-drafts-actions.spec.ts index 07c6a82e..679a4b18 100644 --- a/tests/auth-drafts-actions.spec.ts +++ b/tests/auth-drafts-actions.spec.ts @@ -2,6 +2,8 @@ import https from 'node:https' import { type Page, expect, test } from '@playwright/test' +const baseHost = process.env.BASE_URL || 'https://localhost:3000' + /* Global starting test config */ let page: Page @@ -44,7 +46,7 @@ async function waitForServer(url: string, timeout = 150000) { test.beforeAll(async ({ browser }) => { console.log('Waiting for the server to start...') await new Promise((resolve) => setTimeout(resolve, 5000)) - const baseURL = 'https://localhost:3000' + const baseURL = `${baseHost}` await waitForServer(baseURL) page = await browser.newPage() test.setTimeout(150000) diff --git a/tests/auth-topics-actions.spec.ts b/tests/auth-topics-actions.spec.ts index 391de1c7..e801fe29 100644 --- a/tests/auth-topics-actions.spec.ts +++ b/tests/auth-topics-actions.spec.ts @@ -2,6 +2,8 @@ import https from 'node:https' import { type Page, expect, test } from '@playwright/test' +const baseHost = process.env.BASE_URL || 'https://localhost:3000' + /* Global starting test config */ let page: Page @@ -44,7 +46,7 @@ async function waitForServer(url: string, timeout = 150000) { test.beforeAll(async ({ browser }) => { console.log('Waiting for the server to start...') await new Promise((resolve) => setTimeout(resolve, 5000)) - const baseURL = 'https://localhost:3000' + const baseURL = `${baseHost}` await waitForServer(baseURL) page = await browser.newPage() test.setTimeout(150000) diff --git a/tests/auth-user-actions.spec.ts b/tests/auth-user-actions.spec.ts index e743c140..1e6a7b2d 100644 --- a/tests/auth-user-actions.spec.ts +++ b/tests/auth-user-actions.spec.ts @@ -2,6 +2,8 @@ import https from 'node:https' import { type Page, expect, test } from '@playwright/test' +const baseHost = process.env.BASE_URL || 'https://localhost:3000' + // biome-ignore lint/suspicious/noExplicitAny: let context: any let page: Page @@ -46,7 +48,7 @@ async function waitForServer(url: string, timeout = 150000) { test.beforeAll(async ({ browser }) => { console.log('Waiting for the server to start...') await new Promise((resolve) => setTimeout(resolve, 5000)) - const baseURL = 'https://localhost:3000' + const baseURL = `${baseHost}` await waitForServer(baseURL) context = await browser.newContext() page = await context.newPage() diff --git a/tests/basic-routes.spec.ts b/tests/basic-routes.spec.ts deleted file mode 100644 index 421f715f..00000000 --- a/tests/basic-routes.spec.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { expect, test } from '@playwright/test' - -const baseHost = process.env.BASE_HOST || 'https://localhost:3000' - -const pagesTitles: { [key: string]: RegExp } = { - '/': /Дискурс/, - '/feed': /Лента/, - '/edit/new': /Выберите тип публикации/, - '/guide/support': /Поддержите Дискурс/, - '/author': /Авторы/, - '/topic': /Темы и сюжеты/, - '/inbox': /Входящие/ -} - -Object.keys(pagesTitles).forEach((res: string) => { - test(`страница ${res}`, async ({ page }) => { - await page.goto(`${baseHost}${res}`) - const title = pagesTitles[res] - await expect(page).toHaveTitle(title) - }) -}) diff --git a/tests/basic-routes.test.js b/tests/basic-routes.test.js deleted file mode 100644 index 9880d3b0..00000000 --- a/tests/basic-routes.test.js +++ /dev/null @@ -1,37 +0,0 @@ -import { chromium } from 'playwright' -;(async () => { - const browser = await chromium.launch() - const context = await browser.newContext() - - // Define the URLs to visit - const pagesToVisit = [ - 'https://localhost:3000/', - 'https://localhost:3000/feed', - 'https://localhost:3000/edit/new', - 'https://localhost:3000/guide/support', - 'https://localhost:3000/author', - 'https://localhost:3000/topic', - 'https://localhost:3000/inbox' - ] - - // Loop through the pages and visit each one - for (const pageUrl of pagesToVisit) { - const page = await context.newPage() - - // Log a message before visiting the page - console.log(`Visiting page: ${pageUrl}`) - - await page.goto(pageUrl) - - // Add your test assertions here if needed - - // Log a message after visiting the page - console.log(`Finished visiting page: ${pageUrl}`) - - // Close the page before moving to the next one - await page.close() - } - - // Close the browser - await browser.close() -})() diff --git a/tests/page-sections.spec.ts b/tests/page-sections.spec.ts index 7401996b..4b4ebc2d 100644 --- a/tests/page-sections.spec.ts +++ b/tests/page-sections.spec.ts @@ -2,6 +2,8 @@ import https from 'node:https' import { type Page, expect, test } from '@playwright/test' +const baseHost = process.env.BASE_URL || 'https://localhost:3000' + /* Global starting test config */ let page: Page @@ -44,7 +46,7 @@ async function waitForServer(url: string, timeout = 150000) { test.beforeAll(async ({ browser }) => { console.log('Waiting for the server to start...') await new Promise((resolve) => setTimeout(resolve, 5000)) - const baseURL = 'https://localhost:3000' + const baseURL = `${baseHost}` await waitForServer(baseURL) page = await browser.newPage() test.setTimeout(150000) From 105b286b37ee85edc51595472f9fdb657532ad15 Mon Sep 17 00:00:00 2001 From: Stepan Vladovskiy Date: Thu, 4 Jul 2024 00:50:41 +0000 Subject: [PATCH 09/13] fix: crzy dev, not use this, certs in tests/certs dir for https deploy e2e server --- .github/workflows/node-ci.yml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/.github/workflows/node-ci.yml b/.github/workflows/node-ci.yml index 34dfd5d3..8b75b7e1 100644 --- a/.github/workflows/node-ci.yml +++ b/.github/workflows/node-ci.yml @@ -34,12 +34,10 @@ jobs: run: npm run e2e:install - name: Serve the build directory - run: npx http-server ./dist -p 8080 & - # Adjust "./build" to your build output directory + run: npx http-server ./dist -p 8080 --ssl --cert ./tests/certs/cert.pem --key ./tests/certs/key.pem & # - name: Run e2e tests # run: npm run e2e:tests - name: Run e2e tests run: npm run e2e:tests:ci - # Ensure your e2e tests can accept a baseUrl parameter From d321cb21b79b0042e10439c0be86973bb57cbf9f Mon Sep 17 00:00:00 2001 From: Stepan Vladovskiy Date: Thu, 4 Jul 2024 00:54:33 +0000 Subject: [PATCH 10/13] fix: add certs --- tests/certs/cert.pem | 31 ++++++++++++++++++++++++++ tests/certs/key.pem | 52 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 83 insertions(+) create mode 100644 tests/certs/cert.pem create mode 100644 tests/certs/key.pem diff --git a/tests/certs/cert.pem b/tests/certs/cert.pem new file mode 100644 index 00000000..4722bcbe --- /dev/null +++ b/tests/certs/cert.pem @@ -0,0 +1,31 @@ +-----BEGIN CERTIFICATE----- +MIIFazCCA1OgAwIBAgIUcRug+NV7RWtT9BJz4B1x5Clo5oAwDQYJKoZIhvcNAQEL +BQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoM +GEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAeFw0yNDA3MDQwMDQ5MTJaFw0yNTA3 +MDQwMDQ5MTJaMEUxCzAJBgNVBAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEw +HwYDVQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQwggIiMA0GCSqGSIb3DQEB +AQUAA4ICDwAwggIKAoICAQCzpIsc3Jzhq/Cv0n3rsk+vxOTem/1bCo5j1y0v49Q5 +5ZdvT2wFo81StvYhk+Rr0xtGa2eD5pEvawUUnt8AbelkUCYwkoNkWydj2LnzyKnm +gyIPM8B/mJzv0h1mtto10bWGFcWefCTTxzz0GexGyhS3W2Uc+vhuwLB3uwRk6V8s +znH3S5CcxeXiAT5Qih28HQ8nfv8Oi0GrRHD5Un5D5d5BhydVBuhN9CmEGXg/1ecQ +qlzWdqMfwSQuLRT+/22EXPbRSJ27mmKAV50RLQ8prCrCfxBBKixSF7chAXHlVIwO +KWV+UljB/wst0wThYu/6WMXOUmUgX0s3cZ7xYQGb8TvJ7z2iWLnSp68MWwgcWuqT +JwZLmLTG2yFl0FCDFPh37cJrrED7uZZ6zXI52FvsYfEl1WmOXWq2LMThZId52bcr +IBvf/kyCkgpNK5M1D+rRH4LBvfEcCM1q2A18Ptca8vG3Z3rgsP/Q5by3G9y3w0hS +kYOtcFyT1PKd3w7lFByTdualBwGL28kLxfVdFj4WCxGPRQfejFvUKQ8Z8Xh1LAFI +mALmfFR92J89jCFXA/AgT1rj4ykGp/MkgMGcsgnfZhJMHGAL4Vcx6BF/7kME1db3 +esY89iH0u8V73Y69UAbtWbEOZ3vVSPeWCJodHRjQI5i+lg3GlaokV0I0uE35Ywmz +yQIDAQABo1MwUTAdBgNVHQ4EFgQU8f9PbhBV7k+lk1R+yC6S/8zG3ZowHwYDVR0j +BBgwFoAU8f9PbhBV7k+lk1R+yC6S/8zG3ZowDwYDVR0TAQH/BAUwAwEB/zANBgkq +hkiG9w0BAQsFAAOCAgEAKzJQ1kHcXYCnavTe8HitbeiADUkx7xYVOEUlsvpm8gIc +RV+zilZ/Aavpty1dN7X8CSZ2+2/6GM8nVvkkCXzXzvcsfE4YoD+8CogUgumr0MId +jWjceuxrTtZT6os/kmlJbk+Dt7jts2A4CjqIsZuW7oaLeMO0O8u6f/T4PqyMpNw4 +c4Z/5lYCfo19SVDdHEeawGk+NPs1+x0GSbRpatYXg3vdDUEQOlk37MX/K05HGLSI +pr/Aie1CtG8eVIhsSMgRPFxpXbBNViN5t++ViozmiHTNNRJvWKXfYZTQZnKQKarI +hKq2doVLgDAZCUSjrA9U2CaWv7Ox/6hvJN7q2gq2PZ6fN5HmGD8mO+ILlGOFLK0A +BWUYM/VSpcHoGeNla/tKnExvHPIk833ADWxyXEGVGL/ijlgyYpUJLvReoTCDwMvD +Re/PtBkNdJ3qEhS7NQt1WTf8ETaXrGnUJb6zrcPNpMHl7456qYGpuIk99L2MhMSh +reIZudo/VHzN0Gzz5yxX9XfsSV1uY05d+07VqepVI8wnkslaPgzQeyfNV4yhxrNv +bSq++Kzft1Nz9KwW/UxcZDa29QxeXyfYYZkqAgp6ZW7DSNehsE05Pd2IipJYcoXl +fKpuHgU47fWAWOTjtg5bTX4pf1ZNiMo/wwiykwDbmrCYaFuKQw/8n9TnYJti7iQ= +-----END CERTIFICATE----- diff --git a/tests/certs/key.pem b/tests/certs/key.pem new file mode 100644 index 00000000..6ddcc6a8 --- /dev/null +++ b/tests/certs/key.pem @@ -0,0 +1,52 @@ +-----BEGIN PRIVATE KEY----- +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 +vwMHicF+PHK2KJ80a6pcZLNtDynD +-----END PRIVATE KEY----- From fd4233f907153b200318e96c83b38b904368c884 Mon Sep 17 00:00:00 2001 From: Stepan Vladovskiy Date: Thu, 4 Jul 2024 00:58:40 +0000 Subject: [PATCH 11/13] fix: in package var BASE url for e2e tests ci is correted to https --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 247ff896..201a2714 100644 --- a/package.json +++ b/package.json @@ -10,7 +10,7 @@ "start": "vinxi start", "codegen": "graphql-codegen", "e2e:tests": "npx playwright test --project=webkit", - "e2e:tests:ci": "CI=true BASE_URL=http://127.0.0.1:8080 npx playwright test --project=webkit", + "e2e:tests:ci": "CI=true BASE_URL=https://127.0.0.1:8080 npx playwright test --project=webkit", "e2e:install": "npx playwright install webkit && npx playwright install-deps ", "fix": "npx @biomejs/biome check . --fix && stylelint **/*.{scss,css} --fix", "format": "npx @biomejs/biome format src/. --write", From 1cac091a1ce2f111b7c705426b9c3ced5a2948d9 Mon Sep 17 00:00:00 2001 From: Stepan Vladovskiy Date: Thu, 4 Jul 2024 01:11:10 +0000 Subject: [PATCH 12/13] style: refactor tests code to make it clean. But maybe this is can solve the problem in 404 --- tests/auth-drafts-actions.spec.ts | 4 +--- tests/auth-topics-actions.spec.ts | 4 +--- tests/auth-user-actions.spec.ts | 4 +--- tests/page-sections.spec.ts | 2 +- 4 files changed, 4 insertions(+), 10 deletions(-) diff --git a/tests/auth-drafts-actions.spec.ts b/tests/auth-drafts-actions.spec.ts index 679a4b18..4c804d4a 100644 --- a/tests/auth-drafts-actions.spec.ts +++ b/tests/auth-drafts-actions.spec.ts @@ -2,8 +2,6 @@ import https from 'node:https' import { type Page, expect, test } from '@playwright/test' -const baseHost = process.env.BASE_URL || 'https://localhost:3000' - /* Global starting test config */ let page: Page @@ -46,7 +44,7 @@ async function waitForServer(url: string, timeout = 150000) { test.beforeAll(async ({ browser }) => { console.log('Waiting for the server to start...') await new Promise((resolve) => setTimeout(resolve, 5000)) - const baseURL = `${baseHost}` + const baseURL = process.env.BASE_URL || 'https://localhost:3000' await waitForServer(baseURL) page = await browser.newPage() test.setTimeout(150000) diff --git a/tests/auth-topics-actions.spec.ts b/tests/auth-topics-actions.spec.ts index e801fe29..f94e16cd 100644 --- a/tests/auth-topics-actions.spec.ts +++ b/tests/auth-topics-actions.spec.ts @@ -2,8 +2,6 @@ import https from 'node:https' import { type Page, expect, test } from '@playwright/test' -const baseHost = process.env.BASE_URL || 'https://localhost:3000' - /* Global starting test config */ let page: Page @@ -46,7 +44,7 @@ async function waitForServer(url: string, timeout = 150000) { test.beforeAll(async ({ browser }) => { console.log('Waiting for the server to start...') await new Promise((resolve) => setTimeout(resolve, 5000)) - const baseURL = `${baseHost}` + const baseURL = process.env.BASE_URL || 'https://localhost:3000' await waitForServer(baseURL) page = await browser.newPage() test.setTimeout(150000) diff --git a/tests/auth-user-actions.spec.ts b/tests/auth-user-actions.spec.ts index 1e6a7b2d..9323519e 100644 --- a/tests/auth-user-actions.spec.ts +++ b/tests/auth-user-actions.spec.ts @@ -2,8 +2,6 @@ import https from 'node:https' import { type Page, expect, test } from '@playwright/test' -const baseHost = process.env.BASE_URL || 'https://localhost:3000' - // biome-ignore lint/suspicious/noExplicitAny: let context: any let page: Page @@ -48,7 +46,7 @@ async function waitForServer(url: string, timeout = 150000) { test.beforeAll(async ({ browser }) => { console.log('Waiting for the server to start...') await new Promise((resolve) => setTimeout(resolve, 5000)) - const baseURL = `${baseHost}` + const baseURL = process.env.BASE_URL || 'https://localhost:3000' await waitForServer(baseURL) context = await browser.newContext() page = await context.newPage() diff --git a/tests/page-sections.spec.ts b/tests/page-sections.spec.ts index 4b4ebc2d..e90a4bb2 100644 --- a/tests/page-sections.spec.ts +++ b/tests/page-sections.spec.ts @@ -46,7 +46,7 @@ async function waitForServer(url: string, timeout = 150000) { test.beforeAll(async ({ browser }) => { console.log('Waiting for the server to start...') await new Promise((resolve) => setTimeout(resolve, 5000)) - const baseURL = `${baseHost}` + const baseURL = process.env.BASE_URL || 'https://localhost:3000' await waitForServer(baseURL) page = await browser.newPage() test.setTimeout(150000) From 82e8d0d00e5e5cea7c8f2a86baea7e7240cab05b Mon Sep 17 00:00:00 2001 From: Stepan Vladovskiy Date: Thu, 4 Jul 2024 01:22:10 +0000 Subject: [PATCH 13/13] fix: change output build directory to output/public --- .github/workflows/node-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/node-ci.yml b/.github/workflows/node-ci.yml index 8b75b7e1..a3ffa147 100644 --- a/.github/workflows/node-ci.yml +++ b/.github/workflows/node-ci.yml @@ -34,7 +34,7 @@ jobs: run: npm run e2e:install - name: Serve the build directory - run: npx http-server ./dist -p 8080 --ssl --cert ./tests/certs/cert.pem --key ./tests/certs/key.pem & + run: npx http-server ./.output/public -p 8080 --ssl --cert ./tests/certs/cert.pem --key ./tests/certs/key.pem & # - name: Run e2e tests # run: npm run e2e:tests