Compare commits

...

2 Commits

Author SHA1 Message Date
review-agent-prime[bot]
096947a93a Edit tests/initial.spec.ts 2023-12-05 09:55:31 +00:00
Dhruwang
e563b3330a added playwright test for signup,login,onboarding 2023-12-05 15:14:50 +05:30
6 changed files with 242 additions and 61 deletions

27
.github/workflows/playwright.yml vendored Normal file
View File

@@ -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: 18
- name: Install dependencies
run: npm install -g pnpm && pnpm install
- name: Install Playwright Browsers
run: pnpm exec playwright install --with-deps
- name: Run Playwright tests
run: pnpm exec playwright test
- uses: actions/upload-artifact@v3
if: always()
with:
name: playwright-report
path: playwright-report/
retention-days: 30

6
.gitignore vendored
View File

@@ -44,4 +44,8 @@ packages/database/zod
# nixos stuff
.direnv
Zone.Identifier
Zone.Identifier
/test-results/
/playwright-report/
/blob-report/
/playwright/.cache/

View File

@@ -30,6 +30,8 @@
},
"devDependencies": {
"@changesets/cli": "^2.26.2",
"@playwright/test": "^1.40.1",
"@types/node": "20.10.1",
"eslint-config-formbricks": "workspace:*",
"husky": "^8.0.3",
"lint-staged": "^15.1.0",
@@ -58,5 +60,8 @@
"budgetPercentIncreaseRed": 20,
"minimumChangeThreshold": 0,
"showDetails": true
},
"dependencies": {
"playwright": "^1.40.1"
}
}

77
playwright.config.ts Normal file
View File

@@ -0,0 +1,77 @@
import { defineConfig, devices } from "@playwright/test";
/**
* Read environment variables from file.
* https://github.com/motdotla/dotenv
*/
// require('dotenv').config();
/**
* See https://playwright.dev/docs/test-configuration.
*/
export default defineConfig({
testDir: "./tests",
/* Run tests in files in parallel */
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",
/* Shared settings for all the projects below. See https://playwright.dev/docs/api/class-testoptions. */
use: {
/* Base URL to use in actions like `await page.goto('/')`. */
// baseURL: 'http://127.0.0.1:3000',
/* Collect trace when retrying the failed test. See https://playwright.dev/docs/trace-viewer */
trace: "on-first-retry",
},
/* Configure projects for major browsers */
projects: [
{
name: "chromium",
use: { ...devices["Desktop Chrome"] },
},
// {
// 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: "pnpm go",
url: "http://127.0.0.1:3000",
reuseExistingServer: !process.env.CI,
},
});

147
pnpm-lock.yaml generated
View File

@@ -7,10 +7,20 @@ settings:
importers:
.:
dependencies:
playwright:
specifier: ^1.40.1
version: 1.40.1
devDependencies:
'@changesets/cli':
specifier: ^2.26.2
version: 2.26.2
'@playwright/test':
specifier: ^1.40.1
version: 1.40.1
'@types/node':
specifier: 20.10.1
version: 20.10.1
eslint-config-formbricks:
specifier: workspace:*
version: link:packages/eslint-config-formbricks
@@ -277,7 +287,7 @@ importers:
version: 7.2.0(typescript@5.3.2)
vite:
specifier: ^4.4.11
version: 4.5.0
version: 4.5.0(@types/node@20.10.1)
apps/web:
dependencies:
@@ -443,16 +453,16 @@ importers:
version: 9.0.0(eslint@8.54.0)
eslint-config-turbo:
specifier: latest
version: 1.8.8(eslint@8.54.0)
version: 1.10.16(eslint@8.54.0)
terser:
specifier: ^5.24.0
version: 5.24.0
vite:
specifier: ^5.0.4
version: 5.0.4(terser@5.24.0)
version: 5.0.4(@types/node@20.10.1)(terser@5.24.0)
vite-plugin-dts:
specifier: ^3.6.4
version: 3.6.4(typescript@5.3.2)(vite@5.0.4)
version: 3.6.4(@types/node@20.10.1)(typescript@5.3.2)(vite@5.0.4)
packages/database:
dependencies:
@@ -526,7 +536,7 @@ importers:
version: 9.0.0(eslint@8.54.0)
eslint-config-turbo:
specifier: latest
version: 1.8.8(eslint@8.54.0)
version: 1.10.16(eslint@8.54.0)
eslint-plugin-react:
specifier: 7.33.2
version: 7.33.2(eslint@8.54.0)
@@ -586,13 +596,13 @@ importers:
version: 9.0.0(eslint@8.54.0)
eslint-config-turbo:
specifier: latest
version: 1.8.8(eslint@8.54.0)
version: 1.10.16(eslint@8.54.0)
isomorphic-fetch:
specifier: ^3.0.0
version: 3.0.0
jest:
specifier: ^29.7.0
version: 29.7.0
version: 29.7.0(@types/node@20.10.1)
jest-environment-jsdom:
specifier: ^29.7.0
version: 29.7.0
@@ -604,10 +614,10 @@ importers:
version: 5.24.0
vite:
specifier: ^5.0.4
version: 5.0.4(terser@5.24.0)
version: 5.0.4(@types/node@20.10.1)(terser@5.24.0)
vite-plugin-dts:
specifier: ^3.6.4
version: 3.6.4(typescript@5.3.2)(vite@5.0.4)
version: 3.6.4(@types/node@20.10.1)(typescript@5.3.2)(vite@5.0.4)
packages/lib:
dependencies:
@@ -713,7 +723,7 @@ importers:
version: 9.0.0(eslint@8.54.0)
eslint-config-turbo:
specifier: latest
version: 1.8.8(eslint@8.54.0)
version: 1.10.16(eslint@8.54.0)
postcss:
specifier: ^8.4.31
version: 8.4.31
@@ -728,10 +738,10 @@ importers:
version: 5.24.0
vite:
specifier: ^5.0.4
version: 5.0.4(terser@5.24.0)
version: 5.0.4(@types/node@20.10.1)(terser@5.24.0)
vite-plugin-dts:
specifier: ^3.6.4
version: 3.6.4(typescript@5.3.2)(vite@5.0.4)
version: 3.6.4(@types/node@20.10.1)(typescript@5.3.2)(vite@5.0.4)
vite-tsconfig-paths:
specifier: ^4.2.1
version: 4.2.1(typescript@5.3.2)(vite@5.0.4)
@@ -4294,7 +4304,7 @@ packages:
magic-string: 0.27.0
react-docgen-typescript: 2.2.2(typescript@5.3.2)
typescript: 5.3.2
vite: 4.5.0
vite: 4.5.0(@types/node@20.10.1)
dev: true
/@jridgewell/gen-mapping@0.3.3:
@@ -4668,24 +4678,24 @@ packages:
'@types/react': 18.2.28
react: 18.2.0
/@microsoft/api-extractor-model@7.28.2:
/@microsoft/api-extractor-model@7.28.2(@types/node@20.10.1):
resolution: {integrity: sha512-vkojrM2fo3q4n4oPh4uUZdjJ2DxQ2+RnDQL/xhTWSRUNPF6P4QyrvY357HBxbnltKcYu+nNNolVqc6TIGQ73Ig==}
dependencies:
'@microsoft/tsdoc': 0.14.2
'@microsoft/tsdoc-config': 0.16.2
'@rushstack/node-core-library': 3.61.0
'@rushstack/node-core-library': 3.61.0(@types/node@20.10.1)
transitivePeerDependencies:
- '@types/node'
dev: true
/@microsoft/api-extractor@7.38.0:
/@microsoft/api-extractor@7.38.0(@types/node@20.10.1):
resolution: {integrity: sha512-e1LhZYnfw+JEebuY2bzhw0imDCl1nwjSThTrQqBXl40hrVo6xm3j/1EpUr89QyzgjqmAwek2ZkIVZbrhaR+cqg==}
hasBin: true
dependencies:
'@microsoft/api-extractor-model': 7.28.2
'@microsoft/api-extractor-model': 7.28.2(@types/node@20.10.1)
'@microsoft/tsdoc': 0.14.2
'@microsoft/tsdoc-config': 0.16.2
'@rushstack/node-core-library': 3.61.0
'@rushstack/node-core-library': 3.61.0(@types/node@20.10.1)
'@rushstack/rig-package': 0.5.1
'@rushstack/ts-command-line': 4.16.1
colors: 1.2.5
@@ -5239,6 +5249,14 @@ packages:
requiresBuild: true
optional: true
/@playwright/test@1.40.1:
resolution: {integrity: sha512-EaaawMTOeEItCRvfmkI9v6rBkF1svM8wjl/YPRrg2N2Wmp+4qJYkWtJsbew1szfKKDm6fPLy4YAanBhIlf9dWw==}
engines: {node: '>=16'}
hasBin: true
dependencies:
playwright: 1.40.1
dev: true
/@preact/preset-vite@2.7.0(@babel/core@7.23.5)(preact@10.19.2)(vite@5.0.4):
resolution: {integrity: sha512-m5N0FVtxbCCDxNk55NGhsRpKJChYcupcuQHzMJc/Bll07IKZKn8amwYciyKFS9haU6AgzDAJ/ewvApr6Qg1DHw==}
peerDependencies:
@@ -5254,7 +5272,7 @@ packages:
debug: 4.3.4
kolorist: 1.8.0
resolve: 1.22.8
vite: 5.0.4(terser@5.24.0)
vite: 5.0.4(@types/node@20.10.1)(terser@5.24.0)
transitivePeerDependencies:
- preact
- supports-color
@@ -5288,7 +5306,7 @@ packages:
'@prefresh/utils': 1.2.0
'@rollup/pluginutils': 4.2.1
preact: 10.19.2
vite: 5.0.4(terser@5.24.0)
vite: 5.0.4(@types/node@20.10.1)(terser@5.24.0)
transitivePeerDependencies:
- supports-color
dev: true
@@ -7030,7 +7048,7 @@ packages:
resolution: {integrity: sha512-6i/8UoL0P5y4leBIGzvkZdS85RDMG9y1ihZzmTZQ5LdHUYmZ7pKFoj8X0236s3lusPs1Fa5HTQUpwI+UfTcmeA==}
dev: true
/@rushstack/node-core-library@3.61.0:
/@rushstack/node-core-library@3.61.0(@types/node@20.10.1):
resolution: {integrity: sha512-tdOjdErme+/YOu4gPed3sFS72GhtWCgNV9oDsHDnoLY5oDfwjKUc9Z+JOZZ37uAxcm/OCahDHfuu2ugqrfWAVQ==}
peerDependencies:
'@types/node': '*'
@@ -7038,6 +7056,7 @@ packages:
'@types/node':
optional: true
dependencies:
'@types/node': 20.10.1
colors: 1.2.5
fs-extra: 7.0.1
import-lazy: 4.0.0
@@ -8150,7 +8169,7 @@ packages:
magic-string: 0.30.5
rollup: 3.29.4
typescript: 5.3.2
vite: 4.5.0
vite: 4.5.0(@types/node@20.10.1)
transitivePeerDependencies:
- encoding
- supports-color
@@ -8515,7 +8534,7 @@ packages:
react: 18.2.0
react-docgen: 6.0.4
react-dom: 18.2.0(react@18.2.0)
vite: 4.5.0
vite: 4.5.0(@types/node@20.10.1)
transitivePeerDependencies:
- '@preact/preset-vite'
- encoding
@@ -8968,7 +8987,7 @@ packages:
/@types/jsonwebtoken@9.0.5:
resolution: {integrity: sha512-VRLSGzik+Unrup6BsouBeHsf4d1hOEgYWTm/7Nmw1sXoN1+tRly/Gy/po3yeahnP4jfnQWWAhQAqcNfH7ngOkA==}
dependencies:
'@types/node': 20.9.0
'@types/node': 20.10.1
dev: true
/@types/keyv@3.1.4:
@@ -9052,18 +9071,6 @@ packages:
dependencies:
undici-types: 5.26.5
/@types/node@20.8.6:
resolution: {integrity: sha512-eWO4K2Ji70QzKUqRy6oyJWUeB7+g2cRagT3T/nxYibYcT4y2BDL8lqolRXjTHmkZCdJfIPaY73KbJAZmcryxTQ==}
dependencies:
undici-types: 5.25.3
dev: true
/@types/node@20.9.0:
resolution: {integrity: sha512-nekiGu2NDb1BcVofVcEKMIwzlx4NjHlcjhoxxKBNLtz15Y1z7MYf549DFvkHSId02Ax6kGwWntIBPC3l/JZcmw==}
dependencies:
undici-types: 5.26.5
dev: true
/@types/normalize-package-data@2.4.3:
resolution: {integrity: sha512-ehPtgRgaULsFG8x0NeYJvmyH1hmlfsNLujHe9dQEia/7MAJYdzMSi19JtchUHjmBA6XC/75dK55mzZH+RyieSg==}
@@ -9080,7 +9087,7 @@ packages:
/@types/qrcode@1.5.5:
resolution: {integrity: sha512-CdfBi/e3Qk+3Z/fXYShipBT13OJ2fDO2Q2w5CIP5anLTLIndQG9z6P1cnm+8zCWSpm5dnxMFd/uREtb0EXuQzg==}
dependencies:
'@types/node': 20.8.6
'@types/node': 20.10.1
dev: true
/@types/qs@6.9.9:
@@ -9647,7 +9654,7 @@ packages:
'@babel/plugin-transform-react-jsx-source': 7.22.5(@babel/core@7.23.5)
magic-string: 0.27.0
react-refresh: 0.14.0
vite: 4.5.0
vite: 4.5.0(@types/node@20.10.1)
transitivePeerDependencies:
- supports-color
dev: true
@@ -9663,7 +9670,7 @@ packages:
'@babel/plugin-transform-react-jsx-source': 7.22.5(@babel/core@7.23.2)
'@types/babel__core': 7.20.3
react-refresh: 0.14.0
vite: 4.5.0
vite: 4.5.0(@types/node@20.10.1)
transitivePeerDependencies:
- supports-color
dev: true
@@ -11417,7 +11424,7 @@ packages:
capture-stack-trace: 1.0.2
dev: false
/create-jest@29.7.0:
/create-jest@29.7.0(@types/node@20.10.1):
resolution: {integrity: sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
hasBin: true
@@ -12385,13 +12392,13 @@ packages:
eslint: 8.54.0
dev: true
/eslint-config-turbo@1.8.8(eslint@8.54.0):
resolution: {integrity: sha512-+yT22sHOT5iC1sbBXfLIdXfbZuiv9bAyOXsxTxFCWelTeFFnANqmuKB3x274CFvf7WRuZ/vYP/VMjzU9xnFnxA==}
/eslint-config-turbo@1.10.16(eslint@8.54.0):
resolution: {integrity: sha512-O3NQI72bQHV7FvSC6lWj66EGx8drJJjuT1kuInn6nbMLOHdMBhSUX/8uhTAlHRQdlxZk2j9HtgFCIzSc93w42g==}
peerDependencies:
eslint: '>6.6.0'
dependencies:
eslint: 8.54.0
eslint-plugin-turbo: 1.8.8(eslint@8.54.0)
eslint-plugin-turbo: 1.10.16(eslint@8.54.0)
dev: true
/eslint-import-resolver-node@0.3.9:
@@ -12575,11 +12582,12 @@ packages:
- typescript
dev: true
/eslint-plugin-turbo@1.8.8(eslint@8.54.0):
resolution: {integrity: sha512-zqyTIvveOY4YU5jviDWw9GXHd4RiKmfEgwsjBrV/a965w0PpDwJgEUoSMB/C/dU310Sv9mF3DSdEjxjJLaw6rA==}
/eslint-plugin-turbo@1.10.16(eslint@8.54.0):
resolution: {integrity: sha512-ZjrR88MTN64PNGufSEcM0tf+V1xFYVbeiMeuIqr0aiABGomxFLo4DBkQ7WI4WzkZtWQSIA2sP+yxqSboEfL9MQ==}
peerDependencies:
eslint: '>6.6.0'
dependencies:
dotenv: 16.0.3
eslint: 8.54.0
dev: true
@@ -13234,6 +13242,13 @@ packages:
/fs.realpath@1.0.0:
resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==}
/fsevents@2.3.2:
resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==}
engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
os: [darwin]
requiresBuild: true
optional: true
/fsevents@2.3.3:
resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==}
engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
@@ -14702,7 +14717,7 @@ packages:
- supports-color
dev: true
/jest-cli@29.7.0:
/jest-cli@29.7.0(@types/node@20.10.1):
resolution: {integrity: sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
hasBin: true
@@ -14716,7 +14731,7 @@ packages:
'@jest/test-result': 29.7.0
'@jest/types': 29.6.3
chalk: 4.1.2
create-jest: 29.7.0
create-jest: 29.7.0(@types/node@20.10.1)
exit: 0.1.2
import-local: 3.1.0
jest-config: 29.7.0(@types/node@20.10.1)
@@ -14811,7 +14826,7 @@ packages:
'@jest/fake-timers': 29.7.0
'@jest/types': 29.6.3
'@types/jsdom': 20.0.1
'@types/node': 20.8.6
'@types/node': 20.10.1
jest-mock: 29.7.0
jest-util: 29.7.0
jsdom: 20.0.3
@@ -15102,7 +15117,7 @@ packages:
supports-color: 8.1.1
dev: true
/jest@29.7.0:
/jest@29.7.0(@types/node@20.10.1):
resolution: {integrity: sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
hasBin: true
@@ -15115,7 +15130,7 @@ packages:
'@jest/core': 29.7.0
'@jest/types': 29.6.3
import-local: 3.1.0
jest-cli: 29.7.0
jest-cli: 29.7.0(@types/node@20.10.1)
transitivePeerDependencies:
- '@types/node'
- babel-plugin-macros
@@ -17624,6 +17639,20 @@ packages:
dependencies:
find-up: 5.0.0
/playwright-core@1.40.1:
resolution: {integrity: sha512-+hkOycxPiV534c4HhpfX6yrlawqVUzITRKwHAmYfmsVreltEl6fAZJ3DPfLMOODw0H3s1Itd6MDCWmP1fl/QvQ==}
engines: {node: '>=16'}
hasBin: true
/playwright@1.40.1:
resolution: {integrity: sha512-2eHI7IioIpQ0bS1Ovg/HszsN/XKNwEG1kbzSDDmADpclKc7CyqkHw7Mg2JCz/bbCxg25QUPcjksoMW7JcIFQmw==}
engines: {node: '>=16'}
hasBin: true
dependencies:
playwright-core: 1.40.1
optionalDependencies:
fsevents: 2.3.2
/pngjs@5.0.0:
resolution: {integrity: sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw==}
engines: {node: '>=10.13.0'}
@@ -20578,10 +20607,6 @@ packages:
which-boxed-primitive: 1.0.2
dev: true
/undici-types@5.25.3:
resolution: {integrity: sha512-Ga1jfYwRn7+cP9v8auvEXN1rX3sWqlayd4HP7OKk4mZWylEmu3KzXDUGrQUN6Ol7qo1gPvB2e5gX6udnyEPgdA==}
dev: true
/undici-types@5.26.5:
resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==}
@@ -21035,7 +21060,7 @@ packages:
vfile-message: 3.1.4
dev: false
/vite-plugin-dts@3.6.4(typescript@5.3.2)(vite@5.0.4):
/vite-plugin-dts@3.6.4(@types/node@20.10.1)(typescript@5.3.2)(vite@5.0.4):
resolution: {integrity: sha512-yOVhUI/kQhtS6lCXRYYLv2UUf9bftcwQK9ROxCX2ul17poLQs02ctWX7+vXB8GPRzH8VCK3jebEFtPqqijXx6w==}
engines: {node: ^14.18.0 || >=16.0.0}
peerDependencies:
@@ -21045,13 +21070,13 @@ packages:
vite:
optional: true
dependencies:
'@microsoft/api-extractor': 7.38.0
'@microsoft/api-extractor': 7.38.0(@types/node@20.10.1)
'@rollup/pluginutils': 5.0.5(rollup@2.78.0)
'@vue/language-core': 1.8.22(typescript@5.3.2)
debug: 4.3.4
kolorist: 1.8.0
typescript: 5.3.2
vite: 5.0.4(terser@5.24.0)
vite: 5.0.4(@types/node@20.10.1)(terser@5.24.0)
vue-tsc: 1.8.22(typescript@5.3.2)
transitivePeerDependencies:
- '@types/node'
@@ -21070,13 +21095,13 @@ packages:
debug: 4.3.4
globrex: 0.1.2
tsconfck: 2.1.2(typescript@5.3.2)
vite: 5.0.4(terser@5.24.0)
vite: 5.0.4(@types/node@20.10.1)(terser@5.24.0)
transitivePeerDependencies:
- supports-color
- typescript
dev: true
/vite@4.5.0:
/vite@4.5.0(@types/node@20.10.1):
resolution: {integrity: sha512-ulr8rNLA6rkyFAlVWw2q5YJ91v098AFQ2R0PRFwPzREXOUJQPtFUG0t+/ZikhaOCDqFoDhN6/v8Sq0o4araFAw==}
engines: {node: ^14.18.0 || >=16.0.0}
hasBin: true
@@ -21104,6 +21129,7 @@ packages:
terser:
optional: true
dependencies:
'@types/node': 20.10.1
esbuild: 0.18.20
postcss: 8.4.31
rollup: 3.29.4
@@ -21111,7 +21137,7 @@ packages:
fsevents: 2.3.3
dev: true
/vite@5.0.4(terser@5.24.0):
/vite@5.0.4(@types/node@20.10.1)(terser@5.24.0):
resolution: {integrity: sha512-RzAr8LSvM8lmhB4tQ5OPcBhpjOZRZjuxv9zO5UcxeoY2bd3kP3Ticd40Qma9/BqZ8JS96Ll/jeBX9u+LJZrhVg==}
engines: {node: ^18.0.0 || >=20.0.0}
hasBin: true
@@ -21139,6 +21165,7 @@ packages:
terser:
optional: true
dependencies:
'@types/node': 20.10.1
esbuild: 0.19.5
postcss: 8.4.31
rollup: 4.4.1

41
tests/initial.spec.ts Normal file
View File

@@ -0,0 +1,41 @@
import { test, expect } from "@playwright/test";
const email = "testp@gmail.com";
const password = "Test@123";
async function createUser(page) {
await page.goto("http://localhost:3000/auth/signup");
await page.getByText("Continue with Email").click();
await page.fill('input[name="name"]', "test");
await page.press('input[name="name"]', "Tab");
await page.fill('input[name="email"]', email);
await page.press('input[name="email"]', "Tab");
await page.fill('input[name="password"]', password);
await page.press('input[name="password"]', "Enter");
}
class LoginPage {
async login(page, email, password) {
await page.getByText("Login").click();
await page.getByText("Login with Email").click();
await page.fill('input[name="email"]', email);
await page.press('input[name="email"]', "Tab");
await page.fill('input[name="password"]', password);
await page.press('input[name="password"]', "Enter");
}
}
test("create account, login, and complete onboarding", async ({ page }) => {
const loginPage = new LoginPage();
await createUser(page);
await loginPage.login(page, email, password);
await completeOnboarding(page);
});
await expect(page).toHaveTitle(/Your Surveys | Formbricks/);
}
test("create account, login, and complete onboarding", async ({ page }) => {
await createUser(page);
await loginUser(page);
await completeOnboarding(page);
});