From bd94c4233daf0d2b92b20b102b2a381a7796baa8 Mon Sep 17 00:00:00 2001 From: Daniel D Orlando Date: Mon, 27 Mar 2023 17:00:59 -0700 Subject: [PATCH 01/13] Playwright setup --- .github/workflows/playwright.yml | 27 ++++++ .gitignore | 7 +- e2e/playwright.config.js | 79 ++++++++++++++++ e2e/specs/landing.spec.js | 7 ++ e2e/storageState.json | 1 + package-lock.json | 153 +++++++++++++++++++++++++++++++ package.json | 25 +++++ 7 files changed, 297 insertions(+), 2 deletions(-) create mode 100644 .github/workflows/playwright.yml create mode 100644 e2e/playwright.config.js create mode 100644 e2e/specs/landing.spec.js create mode 100644 e2e/storageState.json create mode 100644 package-lock.json create mode 100644 package.json diff --git a/.github/workflows/playwright.yml b/.github/workflows/playwright.yml new file mode 100644 index 0000000000..5bbad93cfc --- /dev/null +++ b/.github/workflows/playwright.yml @@ -0,0 +1,27 @@ +name: Playwright Tests +on: + push: + branches: [ main, master ] + pull_request: + branches: [ main, master ] +jobs: + test: + timeout-minutes: 60 + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - uses: actions/setup-node@v3 + with: + node-version: 16 + - name: Install dependencies + run: npm ci + - name: Install Playwright Browsers + run: npx playwright install --with-deps + - name: Run Playwright tests + run: npx playwright test + - uses: actions/upload-artifact@v3 + if: always() + with: + name: playwright-report + path: e2e/playwright-report/ + retention-days: 30 diff --git a/.gitignore b/.gitignore index 8f3751fd13..c7c50deaec 100644 --- a/.gitignore +++ b/.gitignore @@ -52,5 +52,8 @@ api/data/ owner.yml archive .vscode/settings.json - -src/style - official.css \ No newline at end of file +.npmrc +src/style - official.css +/e2e/specs/.test-results/ +/e2e/playwright-report/ +/playwright/.cache/ diff --git a/e2e/playwright.config.js b/e2e/playwright.config.js new file mode 100644 index 0000000000..86bb298c04 --- /dev/null +++ b/e2e/playwright.config.js @@ -0,0 +1,79 @@ +import { defineConfig, devices } from '@playwright/test'; +import path from 'path'; + +export default defineConfig({ + testDir: 'specs/', + outputDir: 'specs/.test-results', + /* Run tests in files in parallel. + NOTE: This sometimes causes issues on Windows. + Set to false if you experience issues running on a Windows machine. */ + fullyParallel: true, + /* Fail the build on CI if you accidentally left test.only in the source code. */ + forbidOnly: !!process.env.CI, + /* Retry on CI only */ + retries: process.env.CI ? 2 : 0, + /* Opt out of parallel tests on CI. */ + workers: process.env.CI ? 1 : undefined, + /* Reporter to use. See https://playwright.dev/docs/test-reporters */ + reporter: [ + ['html', { outputFolder: 'playwright-report' }] + ], + /* Shared settings for all the projects below. See https://playwright.dev/docs/api/class-testoptions. */ + use: { + baseURL: 'http:/localhost:3080', + video: 'on-first-retry', + trace: 'retain-on-failure', + headless: true, + storageState: path.resolve('./e2e/storageState.json'), + screenshot: 'only-on-failure', + }, + expect: { + timeout: 10000, + }, + /* Configure projects for major browsers */ + projects: [ + { + name: 'chromium', + use: { ...devices['Desktop Chrome'] }, + }, + + // Note: enabling these will slow down the CI and is probably unnecessary. + // { + // name: 'firefox', + // use: { ...devices['Desktop Firefox'] }, + // }, + + // { + // name: 'webkit', + // use: { ...devices['Desktop Safari'] }, + // }, + + /* Test against mobile viewports. */ + // { + // name: 'Mobile Chrome', + // use: { ...devices['Pixel 5'] }, + // }, + // { + // name: 'Mobile Safari', + // use: { ...devices['iPhone 12'] }, + // }, + + /* Test against branded browsers. */ + // { + // name: 'Microsoft Edge', + // use: { ...devices['Desktop Edge'], channel: 'msedge' }, + // }, + // { + // name: 'Google Chrome', + // use: { ..devices['Desktop Chrome'], channel: 'chrome' }, + // }, + ], + + /* Run your local dev server before starting the tests */ + webServer: { + command: 'node ../api/server/index.js', + url: 'http://localhost:3080', + timeout: 30_000, + reuseExistingServer: !process.env.CI, + }, +}); diff --git a/e2e/specs/landing.spec.js b/e2e/specs/landing.spec.js new file mode 100644 index 0000000000..9582cd0a4c --- /dev/null +++ b/e2e/specs/landing.spec.js @@ -0,0 +1,7 @@ +import {expect, test} from '@playwright/test'; + +test('landing page', async ({page}) => { + await page.goto('/'); + expect (await page.title()).toBe('ChatGPT Clone'); + expect (await page.textContent('h1')).toBe('ChatGPT Clone'); +}); \ No newline at end of file diff --git a/e2e/storageState.json b/e2e/storageState.json new file mode 100644 index 0000000000..9e26dfeeb6 --- /dev/null +++ b/e2e/storageState.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000000..2cf7ed5a6b --- /dev/null +++ b/package-lock.json @@ -0,0 +1,153 @@ +{ + "name": "chatgpt-clone", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "chatgpt-clone", + "version": "1.0.0", + "license": "ISC", + "devDependencies": { + "@playwright/test": "^1.32.1", + "cross-env": "^7.0.3" + } + }, + "node_modules/@playwright/test": { + "version": "1.32.1", + "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.32.1.tgz", + "integrity": "sha512-FTwjCuhlm1qHUGf4hWjfr64UMJD/z0hXYbk+O387Ioe6WdyZQ+0TBDAc6P+pHjx2xCv1VYNgrKbYrNixFWy4Dg==", + "dev": true, + "dependencies": { + "@types/node": "*", + "playwright-core": "1.32.1" + }, + "bin": { + "playwright": "cli.js" + }, + "engines": { + "node": ">=14" + }, + "optionalDependencies": { + "fsevents": "2.3.2" + } + }, + "node_modules/@types/node": { + "version": "18.15.10", + "resolved": "https://registry.npmjs.org/@types/node/-/@types/node-18.15.10.tgz", + "integrity": "sha1-TuIXHDMGoYXRII2tX0Ta497kz+M=", + "dev": true, + "license": "MIT" + }, + "node_modules/cross-env": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-7.0.3.tgz", + "integrity": "sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.1" + }, + "bin": { + "cross-env": "src/bin/cross-env.js", + "cross-env-shell": "src/bin/cross-env-shell.js" + }, + "engines": { + "node": ">=10.14", + "npm": ">=6", + "yarn": ">=1" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/playwright-core": { + "version": "1.32.1", + "resolved": "https://registry.npmjs.org/@playwright/playwright-core/-/playwright-core-1.32.1.tgz", + "integrity": "sha1-WhDDJAMyOwfXXqQo6+7YZqgLdqE=", + "dev": true, + "license": "Apache-2.0", + "bin": { + "playwright": "cli.js" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000000..cd6ee993c4 --- /dev/null +++ b/package.json @@ -0,0 +1,25 @@ +{ + "name": "chatgpt-clone", + "version": "0.1.0", + "description": "", + "scripts": { + "e2e": "playwright test --config=e2e/playwright.config.js", + "e2e:update": "playwright test --config=e2e/playwright.config.js --update-snapshots", + "e2e:debug": "cross-env PWDEBUG=1 playwright test --config=e2e/playwright.config.js", + "e2e:report": "npx playwright show-report e2e/playwright-report" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/danny-avila/chatgpt-clone.git" + }, + "author": "", + "license": "ISC", + "bugs": { + "url": "https://github.com/danny-avila/chatgpt-clone/issues" + }, + "homepage": "https://github.com/danny-avila/chatgpt-clone#readme", + "devDependencies": { + "@playwright/test": "^1.32.1", + "cross-env": "^7.0.3" + } +} From fe6b1fc12a9abb49138d9f7a1d1273671bb58d78 Mon Sep 17 00:00:00 2001 From: Daniel D Orlando Date: Tue, 28 Mar 2023 08:23:07 -0700 Subject: [PATCH 02/13] generate new package-lock.json --- package-lock.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index 2cf7ed5a6b..1b7b54695c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "chatgpt-clone", - "version": "1.0.0", + "version": "0.1.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "chatgpt-clone", - "version": "1.0.0", + "version": "0.1.0", "license": "ISC", "devDependencies": { "@playwright/test": "^1.32.1", From b7c911534c9abd1a48eafb088bdd9c3cddb3da62 Mon Sep 17 00:00:00 2001 From: Daniel D Orlando Date: Tue, 28 Mar 2023 09:27:49 -0700 Subject: [PATCH 03/13] use node 18 --- .github/workflows/playwright.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/playwright.yml b/.github/workflows/playwright.yml index 5bbad93cfc..29c87ca950 100644 --- a/.github/workflows/playwright.yml +++ b/.github/workflows/playwright.yml @@ -5,14 +5,15 @@ on: pull_request: branches: [ main, master ] jobs: - test: + tests_e2e: + name: Run end-to-end tests timeout-minutes: 60 runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - uses: actions/setup-node@v3 with: - node-version: 16 + node-version: 18 - name: Install dependencies run: npm ci - name: Install Playwright Browsers From b19ef425b7a0db2f7a226803f140838a5b9af9a2 Mon Sep 17 00:00:00 2001 From: Daniel D Orlando Date: Tue, 28 Mar 2023 09:32:41 -0700 Subject: [PATCH 04/13] try removing package-lock.json and forcing it to generate on the npm ci step --- .gitignore | 1 + package-lock.json | 153 ---------------------------------------------- 2 files changed, 1 insertion(+), 153 deletions(-) delete mode 100644 package-lock.json diff --git a/.gitignore b/.gitignore index c7c50deaec..7ae346af21 100644 --- a/.gitignore +++ b/.gitignore @@ -46,6 +46,7 @@ bower_components/ .flooignore # Environment +package-lock.json .env cache.json api/data/ diff --git a/package-lock.json b/package-lock.json deleted file mode 100644 index 1b7b54695c..0000000000 --- a/package-lock.json +++ /dev/null @@ -1,153 +0,0 @@ -{ - "name": "chatgpt-clone", - "version": "0.1.0", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "name": "chatgpt-clone", - "version": "0.1.0", - "license": "ISC", - "devDependencies": { - "@playwright/test": "^1.32.1", - "cross-env": "^7.0.3" - } - }, - "node_modules/@playwright/test": { - "version": "1.32.1", - "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.32.1.tgz", - "integrity": "sha512-FTwjCuhlm1qHUGf4hWjfr64UMJD/z0hXYbk+O387Ioe6WdyZQ+0TBDAc6P+pHjx2xCv1VYNgrKbYrNixFWy4Dg==", - "dev": true, - "dependencies": { - "@types/node": "*", - "playwright-core": "1.32.1" - }, - "bin": { - "playwright": "cli.js" - }, - "engines": { - "node": ">=14" - }, - "optionalDependencies": { - "fsevents": "2.3.2" - } - }, - "node_modules/@types/node": { - "version": "18.15.10", - "resolved": "https://registry.npmjs.org/@types/node/-/@types/node-18.15.10.tgz", - "integrity": "sha1-TuIXHDMGoYXRII2tX0Ta497kz+M=", - "dev": true, - "license": "MIT" - }, - "node_modules/cross-env": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-7.0.3.tgz", - "integrity": "sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==", - "dev": true, - "dependencies": { - "cross-spawn": "^7.0.1" - }, - "bin": { - "cross-env": "src/bin/cross-env.js", - "cross-env-shell": "src/bin/cross-env-shell.js" - }, - "engines": { - "node": ">=10.14", - "npm": ">=6", - "yarn": ">=1" - } - }, - "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true - }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/playwright-core": { - "version": "1.32.1", - "resolved": "https://registry.npmjs.org/@playwright/playwright-core/-/playwright-core-1.32.1.tgz", - "integrity": "sha1-WhDDJAMyOwfXXqQo6+7YZqgLdqE=", - "dev": true, - "license": "Apache-2.0", - "bin": { - "playwright": "cli.js" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - } - } -} From 70427a628f5a8a3268023b20e2bc516e2cb76067 Mon Sep 17 00:00:00 2001 From: Daniel D Orlando Date: Tue, 28 Mar 2023 09:36:35 -0700 Subject: [PATCH 05/13] generate new package-lock.json --- .gitignore | 1 - package-lock.json | 153 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 153 insertions(+), 1 deletion(-) create mode 100644 package-lock.json diff --git a/.gitignore b/.gitignore index 7ae346af21..c7c50deaec 100644 --- a/.gitignore +++ b/.gitignore @@ -46,7 +46,6 @@ bower_components/ .flooignore # Environment -package-lock.json .env cache.json api/data/ diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000000..1b7b54695c --- /dev/null +++ b/package-lock.json @@ -0,0 +1,153 @@ +{ + "name": "chatgpt-clone", + "version": "0.1.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "chatgpt-clone", + "version": "0.1.0", + "license": "ISC", + "devDependencies": { + "@playwright/test": "^1.32.1", + "cross-env": "^7.0.3" + } + }, + "node_modules/@playwright/test": { + "version": "1.32.1", + "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.32.1.tgz", + "integrity": "sha512-FTwjCuhlm1qHUGf4hWjfr64UMJD/z0hXYbk+O387Ioe6WdyZQ+0TBDAc6P+pHjx2xCv1VYNgrKbYrNixFWy4Dg==", + "dev": true, + "dependencies": { + "@types/node": "*", + "playwright-core": "1.32.1" + }, + "bin": { + "playwright": "cli.js" + }, + "engines": { + "node": ">=14" + }, + "optionalDependencies": { + "fsevents": "2.3.2" + } + }, + "node_modules/@types/node": { + "version": "18.15.10", + "resolved": "https://registry.npmjs.org/@types/node/-/@types/node-18.15.10.tgz", + "integrity": "sha1-TuIXHDMGoYXRII2tX0Ta497kz+M=", + "dev": true, + "license": "MIT" + }, + "node_modules/cross-env": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-7.0.3.tgz", + "integrity": "sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.1" + }, + "bin": { + "cross-env": "src/bin/cross-env.js", + "cross-env-shell": "src/bin/cross-env-shell.js" + }, + "engines": { + "node": ">=10.14", + "npm": ">=6", + "yarn": ">=1" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/playwright-core": { + "version": "1.32.1", + "resolved": "https://registry.npmjs.org/@playwright/playwright-core/-/playwright-core-1.32.1.tgz", + "integrity": "sha1-WhDDJAMyOwfXXqQo6+7YZqgLdqE=", + "dev": true, + "license": "Apache-2.0", + "bin": { + "playwright": "cli.js" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + } + } +} From 6d7f0448fface94ea67fbb3ec1bd500112bc6d62 Mon Sep 17 00:00:00 2001 From: Daniel D Orlando Date: Tue, 28 Mar 2023 09:44:34 -0700 Subject: [PATCH 06/13] try adding .npmrc to resolve problem getting playwright-core from the registry --- .gitignore | 1 - .npmrc | 2 ++ 2 files changed, 2 insertions(+), 1 deletion(-) create mode 100644 .npmrc diff --git a/.gitignore b/.gitignore index c7c50deaec..f4dc4e89ee 100644 --- a/.gitignore +++ b/.gitignore @@ -52,7 +52,6 @@ api/data/ owner.yml archive .vscode/settings.json -.npmrc src/style - official.css /e2e/specs/.test-results/ /e2e/playwright-report/ diff --git a/.npmrc b/.npmrc new file mode 100644 index 0000000000..ef0ca82a60 --- /dev/null +++ b/.npmrc @@ -0,0 +1,2 @@ +registry=https://registry.npmjs.org/ +always-auth=false From 3ec29423650e1dcb828e37c9aeed166dcd732c9a Mon Sep 17 00:00:00 2001 From: Daniel D Orlando Date: Tue, 28 Mar 2023 09:54:15 -0700 Subject: [PATCH 07/13] try manually removing @playwright from the resolution path to make github action work --- package-lock.json | 21 +++++++++++++++++++-- package.json | 3 ++- 2 files changed, 21 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 1b7b54695c..8104979c58 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,7 +10,8 @@ "license": "ISC", "devDependencies": { "@playwright/test": "^1.32.1", - "cross-env": "^7.0.3" + "cross-env": "^7.0.3", + "playwright": "^1.32.1" } }, "node_modules/@playwright/test": { @@ -100,9 +101,25 @@ "node": ">=8" } }, + "node_modules/playwright": { + "version": "1.32.1", + "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.32.1.tgz", + "integrity": "sha512-GnEizysWMvoqHC3I9l8+4/ZxeLwLNdJJG76xdKGxzOcIZDcw5RSk/FKrFb5CuA+zcLpjIM2p9eR9Z4CuUDkWXg==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "playwright-core": "1.32.1" + }, + "bin": { + "playwright": "cli.js" + }, + "engines": { + "node": ">=14" + } + }, "node_modules/playwright-core": { "version": "1.32.1", - "resolved": "https://registry.npmjs.org/@playwright/playwright-core/-/playwright-core-1.32.1.tgz", + "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.32.1.tgz", "integrity": "sha1-WhDDJAMyOwfXXqQo6+7YZqgLdqE=", "dev": true, "license": "Apache-2.0", diff --git a/package.json b/package.json index cd6ee993c4..6d4153950c 100644 --- a/package.json +++ b/package.json @@ -20,6 +20,7 @@ "homepage": "https://github.com/danny-avila/chatgpt-clone#readme", "devDependencies": { "@playwright/test": "^1.32.1", - "cross-env": "^7.0.3" + "cross-env": "^7.0.3", + "playwright": "^1.32.1" } } From afaa0253b8af8e67c3385796caa5f4c04890a681 Mon Sep 17 00:00:00 2001 From: Daniel D Orlando Date: Tue, 28 Mar 2023 10:06:17 -0700 Subject: [PATCH 08/13] undo change adding .npmrc to try to resolve the package resolution issue on npm ci step of github action --- .gitignore | 1 + .npmrc | 2 -- 2 files changed, 1 insertion(+), 2 deletions(-) delete mode 100644 .npmrc diff --git a/.gitignore b/.gitignore index f4dc4e89ee..c7db0d1e8f 100644 --- a/.gitignore +++ b/.gitignore @@ -46,6 +46,7 @@ bower_components/ .flooignore # Environment +.npmrc .env cache.json api/data/ diff --git a/.npmrc b/.npmrc deleted file mode 100644 index ef0ca82a60..0000000000 --- a/.npmrc +++ /dev/null @@ -1,2 +0,0 @@ -registry=https://registry.npmjs.org/ -always-auth=false From f5e120c330489be5a20db053964194b9a28cf0f6 Mon Sep 17 00:00:00 2001 From: Daniel D Orlando Date: Tue, 28 Mar 2023 10:18:17 -0700 Subject: [PATCH 09/13] try explicitly setting registry before npm ci step --- .github/workflows/playwright.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/playwright.yml b/.github/workflows/playwright.yml index 29c87ca950..1fd1bd3925 100644 --- a/.github/workflows/playwright.yml +++ b/.github/workflows/playwright.yml @@ -15,7 +15,9 @@ jobs: with: node-version: 18 - name: Install dependencies - run: npm ci + run: | + npm config set registry=https://registry.npmjs.org/ + npm ci - name: Install Playwright Browsers run: npx playwright install --with-deps - name: Run Playwright tests From d5e062eeed4e1420d7f6e1f71b6d7e38a6a1a12a Mon Sep 17 00:00:00 2001 From: Daniel D Orlando Date: Wed, 29 Mar 2023 07:44:45 -0700 Subject: [PATCH 10/13] try using npm install instead of npm ci in github action --- .github/workflows/playwright.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/playwright.yml b/.github/workflows/playwright.yml index 1fd1bd3925..88d6c083d8 100644 --- a/.github/workflows/playwright.yml +++ b/.github/workflows/playwright.yml @@ -16,8 +16,7 @@ jobs: node-version: 18 - name: Install dependencies run: | - npm config set registry=https://registry.npmjs.org/ - npm ci + npm install - name: Install Playwright Browsers run: npx playwright install --with-deps - name: Run Playwright tests From 12b7e9a6bb59b30493c0946bdd845dea89919098 Mon Sep 17 00:00:00 2001 From: Daniel D Orlando Date: Wed, 29 Mar 2023 11:31:57 -0700 Subject: [PATCH 11/13] reset back to npm ci --- .github/workflows/playwright.yml | 3 +-- package.json | 3 +-- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/.github/workflows/playwright.yml b/.github/workflows/playwright.yml index 88d6c083d8..29c87ca950 100644 --- a/.github/workflows/playwright.yml +++ b/.github/workflows/playwright.yml @@ -15,8 +15,7 @@ jobs: with: node-version: 18 - name: Install dependencies - run: | - npm install + run: npm ci - name: Install Playwright Browsers run: npx playwright install --with-deps - name: Run Playwright tests diff --git a/package.json b/package.json index 6d4153950c..cd6ee993c4 100644 --- a/package.json +++ b/package.json @@ -20,7 +20,6 @@ "homepage": "https://github.com/danny-avila/chatgpt-clone#readme", "devDependencies": { "@playwright/test": "^1.32.1", - "cross-env": "^7.0.3", - "playwright": "^1.32.1" + "cross-env": "^7.0.3" } } From 85f3b488ce316f9ba860b69e157a4c08dbcaf911 Mon Sep 17 00:00:00 2001 From: Daniel D Orlando Date: Sun, 2 Apr 2023 11:11:53 -0700 Subject: [PATCH 12/13] test: move playwright action out of workflows --- .github/{workflows/playwright.yml => wip-playwright.yml} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename .github/{workflows/playwright.yml => wip-playwright.yml} (100%) diff --git a/.github/workflows/playwright.yml b/.github/wip-playwright.yml similarity index 100% rename from .github/workflows/playwright.yml rename to .github/wip-playwright.yml From ab7cf8c881114dac91c3d8298614cf197f60dc91 Mon Sep 17 00:00:00 2001 From: Daniel Avila Date: Sun, 2 Apr 2023 14:54:02 -0400 Subject: [PATCH 13/13] fix(chatgpt-browser.js): update reverseProxyUrl to use new domain name 'https://bypass.churchless.tech' instead of 'https://bypass.duti.tech' --- api/app/clients/chatgpt-browser.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/api/app/clients/chatgpt-browser.js b/api/app/clients/chatgpt-browser.js index e4d452bfd7..0b29f3a599 100644 --- a/api/app/clients/chatgpt-browser.js +++ b/api/app/clients/chatgpt-browser.js @@ -4,7 +4,7 @@ const set = new Set(["gpt-4", "text-davinci-002-render", "text-davinci-002-rende const clientOptions = { // Warning: This will expose your access token to a third party. Consider the risks before using this. - reverseProxyUrl: 'https://bypass.duti.tech/api/conversation', + reverseProxyUrl: 'https://bypass.churchless.tech/api/conversation', // Access token from https://chat.openai.com/api/auth/session accessToken: process.env.CHATGPT_TOKEN, // debug: true