diff --git a/packages/integrations/alpinejs/package.json b/packages/integrations/alpinejs/package.json index 4e0f4843709d..55f505440206 100644 --- a/packages/integrations/alpinejs/package.json +++ b/packages/integrations/alpinejs/package.json @@ -31,7 +31,8 @@ "build": "astro-scripts build \"src/**/*.ts\" && tsc", "build:ci": "astro-scripts build \"src/**/*.ts\"", "dev": "astro-scripts dev \"src/**/*.ts\"", - "test:e2e": "playwright test" + "test:e2e": "playwright test", + "typecheck:tests": "tsc --build tsconfig.test.json" }, "peerDependencies": { "@types/alpinejs": "^3.0.0", diff --git a/packages/integrations/alpinejs/test/basics.test.js b/packages/integrations/alpinejs/test/basics.test.ts similarity index 100% rename from packages/integrations/alpinejs/test/basics.test.js rename to packages/integrations/alpinejs/test/basics.test.ts diff --git a/packages/integrations/alpinejs/test/directive.test.js b/packages/integrations/alpinejs/test/directive.test.ts similarity index 100% rename from packages/integrations/alpinejs/test/directive.test.js rename to packages/integrations/alpinejs/test/directive.test.ts diff --git a/packages/integrations/alpinejs/test/plugin-script-import.test.js b/packages/integrations/alpinejs/test/plugin-script-import.test.ts similarity index 100% rename from packages/integrations/alpinejs/test/plugin-script-import.test.js rename to packages/integrations/alpinejs/test/plugin-script-import.test.ts diff --git a/packages/integrations/alpinejs/test/test-utils.js b/packages/integrations/alpinejs/test/test-utils.ts similarity index 74% rename from packages/integrations/alpinejs/test/test-utils.js rename to packages/integrations/alpinejs/test/test-utils.ts index f18bf6add250..16c57ff68553 100644 --- a/packages/integrations/alpinejs/test/test-utils.js +++ b/packages/integrations/alpinejs/test/test-utils.ts @@ -2,7 +2,12 @@ import fs from 'node:fs/promises'; import path from 'node:path'; import { fileURLToPath } from 'node:url'; import { test as testBase } from '@playwright/test'; -import { loadFixture as baseLoadFixture } from '../../../astro/test/test-utils.js'; +import { + loadFixture as baseLoadFixture, + type Fixture, + type AstroInlineConfig, + type DevServer, +} from '../../../astro/test/test-utils.js'; // Get all test files in directory, assign unique port for each of them so they don't conflict const testFiles = await fs.readdir(new URL('.', import.meta.url)); @@ -14,7 +19,7 @@ for (let i = 0; i < testFiles.length; i++) { } } -function loadFixture(inlineConfig) { +function loadFixture(inlineConfig: AstroInlineConfig) { if (!inlineConfig?.root) throw new Error("Must provide { root: './fixtures/...' }"); // resolve the relative root (i.e. "./fixtures/tailwindcss") to a full filepath @@ -23,15 +28,15 @@ function loadFixture(inlineConfig) { ...inlineConfig, root: fileURLToPath(new URL(inlineConfig.root, import.meta.url)), server: { - port: testFileToPort.get(path.basename(inlineConfig.root)), + port: testFileToPort.get(path.basename(String(inlineConfig.root))), }, }); } -function testFactory(inlineConfig) { - let fixture; +function testFactory(inlineConfig: AstroInlineConfig) { + let fixture: Fixture; - const test = testBase.extend({ + const test = testBase.extend<{ astro: Fixture }>({ // biome-ignore lint/correctness/noEmptyPattern: playwright needs this astro: async ({}, use) => { fixture = fixture || (await loadFixture(inlineConfig)); @@ -46,10 +51,10 @@ function testFactory(inlineConfig) { return test; } -export function prepareTestFactory(opts) { +export function prepareTestFactory(opts: AstroInlineConfig) { const test = testFactory(opts); - let devServer; + let devServer: DevServer; test.beforeAll(async ({ astro }) => { devServer = await astro.startDevServer(); diff --git a/packages/integrations/alpinejs/tsconfig.test.json b/packages/integrations/alpinejs/tsconfig.test.json new file mode 100644 index 000000000000..27c89c5fe7a7 --- /dev/null +++ b/packages/integrations/alpinejs/tsconfig.test.json @@ -0,0 +1,17 @@ +{ + "extends": "../../../tsconfig.base.json", + "include": ["test/**/*.ts"], + "exclude": ["test/fixtures/**"], + "compilerOptions": { + "noEmit": true, + "allowJs": true, + "noUnusedLocals": false, + "noUnusedParameters": false, + "rewriteRelativeImportExtensions": true + }, + "references": [ + { + "path": "../../astro/tsconfig.test.json" + } + ] +}