diff --git a/.karma.cjs b/.karma.cjs index 8d48365..6d2768e 100644 --- a/.karma.cjs +++ b/.karma.cjs @@ -1,7 +1,8 @@ module.exports = function (config) { config.set({ frameworks: ['mocha'], - plugins: ['karma-mocha', 'karma-chrome-launcher', 'karma-firefox-launcher'], + + plugins: ['karma-mocha', '@endyjasmi/karma-playwright-launcher'], basePath: '', files: [ @@ -10,11 +11,11 @@ module.exports = function (config) { { pattern: 'test/**/*.js', type: 'module' }, ], - browsers: ['ChromeHeadless', 'FirefoxHeadless'], + browsers: ['Chromium', 'Firefox', 'WebKit'], preprocessors: {}, reporters: ['progress'], - singleRun: true, + singleRun: false, concurrency: Infinity, }) } diff --git a/package.json b/package.json index 19074f0..a6b3bcb 100644 --- a/package.json +++ b/package.json @@ -35,22 +35,26 @@ "scripts": { "docs": "typedoc", "test:node": "mocha", - "test:browser": "karma start .karma.cjs", + "test:browser": "karma start .karma.cjs --single-run", "test": "run-s build test:*", "build:esm": "tsc -p tsconfig.esm.json", "build:cjs": "tsc -p tsconfig.cjs.json", "build": "run-s clean build:*", - "clean": "rm -rf ./dist" + "clean": "rm -rf ./dist", + "dev": "run-p -ln dev:*", + "dev:build": "tsc -w -p tsconfig.esm.json", + "dev:test:node": "mocha --parallel --watch", + "dev:test:browser": "karma start .karma.cjs" }, "devDependencies": { + "@endyjasmi/karma-playwright-launcher": "^0.0.3", "@types/node": "16", "chai": "^4.3.6", "karma": "^6.4.1", - "karma-chrome-launcher": "^3.1.1", - "karma-firefox-launcher": "^2.1.2", "karma-mocha": "^2.0.1", "mocha": "^10.0.0", "npm-run-all": "^4.1.5", + "playwright": "^1.27.1", "typedoc": "^0.23.15", "typescript": "^4.8.4" } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 7b8cf45..80b1161 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,26 +1,26 @@ lockfileVersion: 5.4 specifiers: + '@endyjasmi/karma-playwright-launcher': ^0.0.3 '@types/node': '16' chai: ^4.3.6 karma: ^6.4.1 - karma-chrome-launcher: ^3.1.1 - karma-firefox-launcher: ^2.1.2 karma-mocha: ^2.0.1 mocha: ^10.0.0 npm-run-all: ^4.1.5 + playwright: ^1.27.1 typedoc: ^0.23.15 typescript: ^4.8.4 devDependencies: + '@endyjasmi/karma-playwright-launcher': 0.0.3_playwright@1.27.1 '@types/node': 16.11.64 chai: 4.3.6 karma: 6.4.1 - karma-chrome-launcher: 3.1.1 - karma-firefox-launcher: 2.1.2 karma-mocha: 2.0.1 mocha: 10.0.0 npm-run-all: 4.1.5 + playwright: 1.27.1 typedoc: 0.23.15_typescript@4.8.4 typescript: 4.8.4 @@ -31,6 +31,14 @@ packages: engines: {node: '>=0.1.90'} dev: true + /@endyjasmi/karma-playwright-launcher/0.0.3_playwright@1.27.1: + resolution: {integrity: sha512-sGdFoMWlfRAF8abPyi+CeAc25rdJcXCXGNvksBVD0zC1WV0XQ9HXHUuDF/w1JbWLvd3Rp6EdKyRUM8jkBDAPdw==} + peerDependencies: + playwright: 1.x + dependencies: + playwright: 1.27.1 + dev: true + /@socket.io/component-emitter/3.1.0: resolution: {integrity: sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg==} dev: true @@ -783,12 +791,6 @@ packages: has-tostringtag: 1.0.0 dev: true - /is-docker/2.2.1: - resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} - engines: {node: '>=8'} - hasBin: true - dev: true - /is-extglob/2.1.1: resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} engines: {node: '>=0.10.0'} @@ -867,13 +869,6 @@ packages: call-bind: 1.0.2 dev: true - /is-wsl/2.2.0: - resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} - engines: {node: '>=8'} - dependencies: - is-docker: 2.2.1 - dev: true - /isbinaryfile/4.0.10: resolution: {integrity: sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==} engines: {node: '>= 8.0.0'} @@ -904,19 +899,6 @@ packages: graceful-fs: 4.2.10 dev: true - /karma-chrome-launcher/3.1.1: - resolution: {integrity: sha512-hsIglcq1vtboGPAN+DGCISCFOxW+ZVnIqhDQcCMqqCp+4dmJ0Qpq5QAjkbA0X2L9Mi6OBkHi2Srrbmm7pUKkzQ==} - dependencies: - which: 1.3.1 - dev: true - - /karma-firefox-launcher/2.1.2: - resolution: {integrity: sha512-VV9xDQU1QIboTrjtGVD4NCfzIH7n01ZXqy/qpBhnOeGVOkG5JYPEm8kuSd7psHE6WouZaQ9Ool92g8LFweSNMA==} - dependencies: - is-wsl: 2.2.0 - which: 2.0.2 - dev: true - /karma-mocha/2.0.1: resolution: {integrity: sha512-Tzd5HBjm8his2OA4bouAsATYEpZrp9vC7z5E5j4C5Of5Rrs1jY67RAwXNcVmd/Bnk1wgvQRou0zGVLey44G4tQ==} dependencies: @@ -1279,6 +1261,21 @@ packages: engines: {node: '>=4'} dev: true + /playwright-core/1.27.1: + resolution: {integrity: sha512-9EmeXDncC2Pmp/z+teoVYlvmPWUC6ejSSYZUln7YaP89Z6lpAaiaAnqroUt/BoLo8tn7WYShcfaCh+xofZa44Q==} + engines: {node: '>=14'} + hasBin: true + dev: true + + /playwright/1.27.1: + resolution: {integrity: sha512-xXYZ7m36yTtC+oFgqH0eTgullGztKSRMb4yuwLPl8IYSmgBM88QiB+3IWb1mRIC9/NNwcgbG0RwtFlg+EAFQHQ==} + engines: {node: '>=14'} + hasBin: true + requiresBuild: true + dependencies: + playwright-core: 1.27.1 + dev: true + /qjobs/1.2.0: resolution: {integrity: sha512-8YOJEHtxpySA3fFDyCRxA+UUV+fA+rTWnuWvylOK/NCjhY+b4ocCtmu8TtsWb+mYeU+GCHf/S66KZF/AsteKHg==} engines: {node: '>=0.9'} @@ -1706,14 +1703,6 @@ packages: isexe: 2.0.0 dev: true - /which/2.0.2: - resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} - engines: {node: '>= 8'} - hasBin: true - dependencies: - isexe: 2.0.0 - dev: true - /workerpool/6.2.1: resolution: {integrity: sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==} dev: true