diff --git a/.gitignore b/.gitignore index ae80291..e05764e 100644 --- a/.gitignore +++ b/.gitignore @@ -3,6 +3,9 @@ # dependencies node_modules/ +# coverage +.coverage/ + # local env files .env.local .env.*.local diff --git a/local/config/src/vitest.js b/local/config/src/vitest.js index 511896a..9a0b86f 100644 --- a/local/config/src/vitest.js +++ b/local/config/src/vitest.js @@ -5,5 +5,9 @@ module.exports = defineConfig({ test: { setupFiles: resolve(__dirname, 'vitest.setup.js'), environment: 'jsdom', + include: ['test/**/*.test.{js,mjs,cjs,ts,mts,cts,jsx,tsx}'], + coverage: { + reportsDirectory: './.coverage', + }, }, }); diff --git a/package-lock.json b/package-lock.json index 249f065..7216543 100644 --- a/package-lock.json +++ b/package-lock.json @@ -30,6 +30,8 @@ "@types/jest": "^28.1.6", "@typescript-eslint/eslint-plugin": "^5.31.0", "@typescript-eslint/parser": "^5.31.0", + "@vitest/coverage-c8": "^0.24.3", + "@vitest/coverage-istanbul": "^0.24.3", "esbuild": "^0.15.10", "eslint": "^8.20.0", "eslint-config-airbnb": "^19.0.4", @@ -57,24 +59,28 @@ "should": "^13.2.3", "tslib": "^2.4.0", "typescript": "^4.7.4", - "vite": "^3.0.0", + "vite": "^3.1.0", "vitest": "^0.24.3", "webpack": "^5.74.0" } }, "local/browser-testing": { + "name": "@~local/browser-testing", "version": "0.0.0", "dev": true, "hasInstallScript": true }, "local/config": { + "name": "@~local/config", "version": "0.0.0", "dev": true }, "local/esbuild": { + "name": "@~local/esbuild", "dev": true }, "local/full-coverage": { + "name": "@~local/full-coverage", "version": "0.0.0", "dev": true, "dependencies": { @@ -85,6 +91,7 @@ } }, "local/playwright-tooling": { + "name": "@~local/playwright-tooling", "version": "0.0.0", "dev": true, "bin": { @@ -92,6 +99,7 @@ } }, "local/rollup": { + "name": "@~local/rollup", "version": "0.0.0", "dev": true, "dependencies": { @@ -137,12 +145,14 @@ } }, "local/tailwind": { + "name": "@~local/tailwind", "dev": true, "devDependencies": { "@tailwindcss/typography": "^0.5.7" } }, "local/tsconfig": { + "name": "@~local/tsconfig", "version": "0.0.0", "dev": true }, @@ -5935,6 +5945,37 @@ "vue": "^3.2.25" } }, + "node_modules/@vitest/coverage-c8": { + "version": "0.24.3", + "resolved": "https://registry.npmjs.org/@vitest/coverage-c8/-/coverage-c8-0.24.3.tgz", + "integrity": "sha512-tAmMyHxWYnAwGeJb7QgTuEX8aLasTg4X1/6INobXa/7wYGEJ28CACFO5iLn1HzFVPoLvhsS3luQjiflGjjSMRQ==", + "dev": true, + "dependencies": { + "c8": "^7.12.0", + "vitest": "0.24.3" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@vitest/coverage-istanbul": { + "version": "0.24.3", + "resolved": "https://registry.npmjs.org/@vitest/coverage-istanbul/-/coverage-istanbul-0.24.3.tgz", + "integrity": "sha512-cPQ5icP/TPih3qeZ29qA2zg1lxAM+wAUuh1ZkQJ75OK7am/8isqhP5QCCeGCLdFOakDsm4Ik8vHHfcDffuxW9Q==", + "dev": true, + "dependencies": { + "istanbul-lib-coverage": "^3.2.0", + "istanbul-lib-instrument": "^5.2.1", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.1", + "istanbul-reports": "^3.1.5", + "test-exclude": "^6.0.0", + "vitest": "0.24.3" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, "node_modules/@volar/language-core": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-1.0.8.tgz", @@ -7570,6 +7611,70 @@ "node": ">= 0.8" } }, + "node_modules/c8": { + "version": "7.12.0", + "resolved": "https://registry.npmjs.org/c8/-/c8-7.12.0.tgz", + "integrity": "sha512-CtgQrHOkyxr5koX1wEUmN/5cfDa2ckbHRA4Gy5LAL0zaCFtVWJS5++n+w4/sr2GWGerBxgTjpKeDclk/Qk6W/A==", + "dev": true, + "dependencies": { + "@bcoe/v8-coverage": "^0.2.3", + "@istanbuljs/schema": "^0.1.3", + "find-up": "^5.0.0", + "foreground-child": "^2.0.0", + "istanbul-lib-coverage": "^3.2.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-reports": "^3.1.4", + "rimraf": "^3.0.2", + "test-exclude": "^6.0.0", + "v8-to-istanbul": "^9.0.0", + "yargs": "^16.2.0", + "yargs-parser": "^20.2.9" + }, + "bin": { + "c8": "bin/c8.js" + }, + "engines": { + "node": ">=10.12.0" + } + }, + "node_modules/c8/node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/c8/node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/c8/node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true, + "engines": { + "node": ">=10" + } + }, "node_modules/cacache": { "version": "15.3.0", "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.3.0.tgz", @@ -35665,6 +35770,31 @@ "dev": true, "requires": {} }, + "@vitest/coverage-c8": { + "version": "0.24.3", + "resolved": "https://registry.npmjs.org/@vitest/coverage-c8/-/coverage-c8-0.24.3.tgz", + "integrity": "sha512-tAmMyHxWYnAwGeJb7QgTuEX8aLasTg4X1/6INobXa/7wYGEJ28CACFO5iLn1HzFVPoLvhsS3luQjiflGjjSMRQ==", + "dev": true, + "requires": { + "c8": "^7.12.0", + "vitest": "0.24.3" + } + }, + "@vitest/coverage-istanbul": { + "version": "0.24.3", + "resolved": "https://registry.npmjs.org/@vitest/coverage-istanbul/-/coverage-istanbul-0.24.3.tgz", + "integrity": "sha512-cPQ5icP/TPih3qeZ29qA2zg1lxAM+wAUuh1ZkQJ75OK7am/8isqhP5QCCeGCLdFOakDsm4Ik8vHHfcDffuxW9Q==", + "dev": true, + "requires": { + "istanbul-lib-coverage": "^3.2.0", + "istanbul-lib-instrument": "^5.2.1", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.1", + "istanbul-reports": "^3.1.5", + "test-exclude": "^6.0.0", + "vitest": "0.24.3" + } + }, "@volar/language-core": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-1.0.8.tgz", @@ -36972,6 +37102,60 @@ "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", "dev": true }, + "c8": { + "version": "7.12.0", + "resolved": "https://registry.npmjs.org/c8/-/c8-7.12.0.tgz", + "integrity": "sha512-CtgQrHOkyxr5koX1wEUmN/5cfDa2ckbHRA4Gy5LAL0zaCFtVWJS5++n+w4/sr2GWGerBxgTjpKeDclk/Qk6W/A==", + "dev": true, + "requires": { + "@bcoe/v8-coverage": "^0.2.3", + "@istanbuljs/schema": "^0.1.3", + "find-up": "^5.0.0", + "foreground-child": "^2.0.0", + "istanbul-lib-coverage": "^3.2.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-reports": "^3.1.4", + "rimraf": "^3.0.2", + "test-exclude": "^6.0.0", + "v8-to-istanbul": "^9.0.0", + "yargs": "^16.2.0", + "yargs-parser": "^20.2.9" + }, + "dependencies": { + "cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "requires": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + } + }, + "yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true + } + } + }, "cacache": { "version": "15.3.0", "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.3.0.tgz", diff --git a/package.json b/package.json index 6ac62bf..5c73610 100644 --- a/package.json +++ b/package.json @@ -26,6 +26,8 @@ "@types/jest": "^28.1.6", "@typescript-eslint/eslint-plugin": "^5.31.0", "@typescript-eslint/parser": "^5.31.0", + "@vitest/coverage-c8": "^0.24.3", + "@vitest/coverage-istanbul": "^0.24.3", "esbuild": "^0.15.10", "eslint": "^8.20.0", "eslint-config-airbnb": "^19.0.4", diff --git a/packages/overlayscrollbars-ngx/karma.conf.js b/packages/overlayscrollbars-ngx/karma.conf.js index 16cc3e6..44b2b7f 100644 --- a/packages/overlayscrollbars-ngx/karma.conf.js +++ b/packages/overlayscrollbars-ngx/karma.conf.js @@ -28,7 +28,7 @@ module.exports = function (config) { coverageReporter: { dir: require('path').join(__dirname, './.coverage'), subdir: '.', - reporters: [{ type: 'html' }, { type: 'text-summary' }], + reporters: [{ type: 'json' }, { type: 'text' }], }, reporters: ['progress', 'kjhtml'], port: 9876, diff --git a/packages/overlayscrollbars-ngx/package.json b/packages/overlayscrollbars-ngx/package.json index f589d5e..2e922d1 100644 --- a/packages/overlayscrollbars-ngx/package.json +++ b/packages/overlayscrollbars-ngx/package.json @@ -36,6 +36,6 @@ }, "scripts": { "build": "ng build overlayscrollbars-ngx", - "test": "ng test --watch=false --sourceMap=false --browsers=ChromeHeadless" + "test": "ng test --watch=false --sourceMap=false --browsers=ChromeHeadless --code-coverage" } } diff --git a/packages/overlayscrollbars-react/package.json b/packages/overlayscrollbars-react/package.json index a78055b..ccc1da0 100644 --- a/packages/overlayscrollbars-react/package.json +++ b/packages/overlayscrollbars-react/package.json @@ -34,6 +34,6 @@ "build": "run-p build-js build-types", "build-js": "vite build", "build-types": "tsc --emitDeclarationOnly -p tsconfig.types.json", - "test": "vitest run" + "test": "vitest run --coverage" } } diff --git a/packages/overlayscrollbars-svelte/package.json b/packages/overlayscrollbars-svelte/package.json index b6f6e9b..5342f1b 100644 --- a/packages/overlayscrollbars-svelte/package.json +++ b/packages/overlayscrollbars-svelte/package.json @@ -2,13 +2,7 @@ "name": "overlayscrollbars-svelte", "private": true, "version": "0.4.0", - "scripts": { - "build": "svelte-kit sync && svelte-package", - "test": "vitest run --environment jsdom", - "prepublishOnly": "echo 'Did you mean to publish `./package/`, instead of `./`?' && exit 1", - "check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json", - "check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch" - }, + "type": "module", "peerDependencies": { "svelte": "^3.44.0" }, @@ -24,5 +18,11 @@ "tslib": "^2.3.1", "typescript": "^4.7.4" }, - "type": "module" + "scripts": { + "build": "svelte-kit sync && svelte-package", + "test": "vitest run --coverage", + "prepublishOnly": "echo 'Did you mean to publish `./package/`, instead of `./`?' && exit 1", + "check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json", + "check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch" + } } diff --git a/packages/overlayscrollbars-svelte/src/index.ts b/packages/overlayscrollbars-svelte/src/overlayscrollbars-svelte.ts similarity index 100% rename from packages/overlayscrollbars-svelte/src/index.ts rename to packages/overlayscrollbars-svelte/src/overlayscrollbars-svelte.ts diff --git a/packages/overlayscrollbars-svelte/test/OverlayScrollbarsComponent.test.ts b/packages/overlayscrollbars-svelte/test/OverlayScrollbarsComponent.test.ts index 88d49c4..bdbd09b 100644 --- a/packages/overlayscrollbars-svelte/test/OverlayScrollbarsComponent.test.ts +++ b/packages/overlayscrollbars-svelte/test/OverlayScrollbarsComponent.test.ts @@ -1,6 +1,6 @@ import { describe, it, expect, afterEach } from 'vitest'; import { cleanup, render } from '@testing-library/svelte'; -import OverlayScrollbarsComponent from '~/OverlayScrollbarsComponent.svelte'; +import { OverlayScrollbarsComponent } from '~/overlayscrollbars-svelte'; describe('Hello.svelte', () => { // TODO: @testing-library/svelte claims to add this automatically but it doesn't work without explicit afterEach diff --git a/packages/overlayscrollbars-vue/package.json b/packages/overlayscrollbars-vue/package.json index 5bb45c7..a155736 100644 --- a/packages/overlayscrollbars-vue/package.json +++ b/packages/overlayscrollbars-vue/package.json @@ -34,7 +34,7 @@ }, "scripts": { "build": "run-p build-js build-types", - "test": "vitest run", + "test": "vitest run --coverage", "build-js": "vite build", "build-types": "vue-tsc --emitDeclarationOnly -p tsconfig.types.json --composite false" } diff --git a/packages/overlayscrollbars-vue/test/overlayscrollbars.spec.ts b/packages/overlayscrollbars-vue/test/OverlayScrollbarsComponent.test.ts similarity index 100% rename from packages/overlayscrollbars-vue/test/overlayscrollbars.spec.ts rename to packages/overlayscrollbars-vue/test/OverlayScrollbarsComponent.test.ts diff --git a/packages/overlayscrollbars/.gitignore b/packages/overlayscrollbars/.gitignore index c74ef1f..b2a3f9c 100644 --- a/packages/overlayscrollbars/.gitignore +++ b/packages/overlayscrollbars/.gitignore @@ -9,5 +9,3 @@ # Node /node_modules -# Miscellaneous -/.coverage