diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 6a9d6d97..5266a319 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -70,7 +70,7 @@ importers: specifier: ^4.5.0 version: 4.5.0(vite@5.0.2)(vue@3.3.8) vite: - specifier: ^5.0.1 + specifier: ^5.0.2 version: 5.0.2(@types/node@18.18.10) template/config/cypress: @@ -128,15 +128,16 @@ importers: ts-node: specifier: ^10.9.1 version: 10.9.1(@types/node@18.18.10)(typescript@5.2.2) - wait-on: - specifier: ^7.2.0 - version: 7.2.0(debug@4.3.4) template/config/nightwatch-ct: dependencies: vue: specifier: ^3.3.8 version: 3.3.8(typescript@5.2.2) + devDependencies: + '@vue/test-utils': + specifier: ^2.4.2 + version: 2.4.2(vue@3.3.8) template/config/pinia: dependencies: diff --git a/scripts/test.mjs b/scripts/test.mjs index cab7b948..fa1a43dc 100644 --- a/scripts/test.mjs +++ b/scripts/test.mjs @@ -1,9 +1,6 @@ #!/usr/bin/env zx import 'zx/globals' -// Vitest would otherwise enable watch mode by default. -process.env.CI = '1' - const playgroundDir = path.resolve(__dirname, '../playground/') let projects = fs .readdirSync(playgroundDir, { withFileTypes: true }) @@ -21,7 +18,13 @@ for (const projectName of projects) { cd(path.resolve(playgroundDir, projectName)) const packageJSON = require(path.resolve(playgroundDir, projectName, 'package.json')) - console.log(`Building ${projectName}`) + console.log(` + +##### +Building ${projectName} +##### + + `) await $`pnpm build` if ('@playwright/test' in packageJSON.devDependencies) { @@ -35,6 +38,16 @@ for (const projectName of projects) { if ('test:unit' in packageJSON.scripts) { console.log(`Running unit tests in ${projectName}`) - await $`pnpm test:unit` + if (projectName.includes('vitest') || projectName.includes('with-tests')) { + // Vitest would otherwise enable watch mode by default. + await $`CI=1 pnpm test:unit` + } else { + await $`pnpm test:unit` + } + } + + if ('type-check' in packageJSON.scripts) { + console.log(`Running type-check in ${projectName}`) + await $`pnpm type-check` } } diff --git a/template/base/package.json b/template/base/package.json index 5798b2de..fa842a77 100644 --- a/template/base/package.json +++ b/template/base/package.json @@ -10,6 +10,6 @@ }, "devDependencies": { "@vitejs/plugin-vue": "^4.5.0", - "vite": "^5.0.1" + "vite": "^5.0.2" } } diff --git a/template/config/nightwatch-ct/package.json b/template/config/nightwatch-ct/package.json index 9299618b..8982106f 100644 --- a/template/config/nightwatch-ct/package.json +++ b/template/config/nightwatch-ct/package.json @@ -1,8 +1,11 @@ { "scripts": { - "test:unit": "nightwatch src/components/**/__tests__/*" + "test:unit": "nightwatch src/**/__tests__/*" }, "dependencies": { "vue": "^3.3.8" + }, + "devDependencies": { + "@vue/test-utils": "^2.4.2" } } diff --git a/template/config/nightwatch/nightwatch.conf.js b/template/config/nightwatch/nightwatch.conf.js index 8ff17000..05889c61 100644 --- a/template/config/nightwatch/nightwatch.conf.js +++ b/template/config/nightwatch/nightwatch.conf.js @@ -30,10 +30,11 @@ module.exports = { plugins: ['@nightwatch/vue'], // See https://nightwatchjs.org/guide/concepts/test-globals.html#external-test-globals - globals_path: 'nightwatch/globals.js', + globals_path: '', vite_dev_server: { - start_vite: false + start_vite: true, + port: process.env.CI ? 4173 : 5173 }, webdriver: {}, diff --git a/template/config/nightwatch/nightwatch/globals.js b/template/config/nightwatch/nightwatch/globals.js deleted file mode 100644 index 9387d355..00000000 --- a/template/config/nightwatch/nightwatch/globals.js +++ /dev/null @@ -1,23 +0,0 @@ -const waitOn = require('wait-on') -const { setup, teardown } = require('@nightwatch/vue') - -const serverPort = process.env.CI ? '4173' : '5173' - -module.exports = { - before(done) { - setup() - waitOn({ - resources: [`http-get://localhost:${serverPort}`], - verbose: true, - headers: { - accept: 'text/html' - } - }).then(() => { - done() - }) - }, - - after() { - teardown() - } -} diff --git a/template/config/nightwatch/package.json b/template/config/nightwatch/package.json index a77d512d..4f281a77 100644 --- a/template/config/nightwatch/package.json +++ b/template/config/nightwatch/package.json @@ -1,6 +1,6 @@ { "scripts": { - "test:e2e": "nightwatch tests/e2e" + "test:e2e": "nightwatch tests/e2e/*" }, "devDependencies": { "nightwatch": "^3.3.2", @@ -9,7 +9,6 @@ "@types/nightwatch": "^2.3.28", "geckodriver": "^4.2.1", "chromedriver": "^119.0.0", - "ts-node": "^10.9.1", - "wait-on": "^7.2.0" + "ts-node": "^10.9.1" } } diff --git a/template/config/nightwatch/tests/e2e/example.js b/template/config/nightwatch/tests/e2e/example.js index cf2e3c86..43be3fce 100644 --- a/template/config/nightwatch/tests/e2e/example.js +++ b/template/config/nightwatch/tests/e2e/example.js @@ -4,10 +4,7 @@ describe('My First Test', function () { }) it('visits the app root url', function () { - browser.assert - .textContains('.green', 'You did it!') - .assert.elementHasCount('.wrapper nav a', 2) - .strictClick('.wrapper nav a:last-child') + browser.assert.textContains('.green', 'You did it!') }) after((browser) => browser.end()) diff --git a/template/tsconfig/nightwatch/nightwatch/tsconfig.json b/template/tsconfig/nightwatch/nightwatch/tsconfig.json index 652d9bd6..b4b031b9 100644 --- a/template/tsconfig/nightwatch/nightwatch/tsconfig.json +++ b/template/tsconfig/nightwatch/nightwatch/tsconfig.json @@ -3,6 +3,7 @@ "compilerOptions": { "target": "ESNext", "module": "commonjs", + "moduleResolution": "node", "composite": true, "rootDir": "../", "lib": ["ESNext", "dom"], @@ -10,7 +11,7 @@ }, "include": ["../node_modules/@nightwatch/**/*", "../src/components/**/*", "../tests/e2e/**/*"], "ts-node": { - "files": true + "transpileOnly": true }, "files": ["nightwatch.d.ts"] } diff --git a/utils/filterList.ts b/utils/filterList.ts index dd9f9c46..37780156 100644 --- a/utils/filterList.ts +++ b/utils/filterList.ts @@ -1,5 +1 @@ -export const FILES_TO_FILTER = [ - 'nightwatch.e2e.conf.js', - 'nightwatch.component.conf.js', - 'globals.js' -] +export const FILES_TO_FILTER = ['nightwatch.e2e.conf.js', 'nightwatch.component.conf.js']