diff --git a/packages/astro/test/fixtures/redirects/src/pages/late.astro b/packages/astro/test/fixtures/redirects/src/pages/late.astro index 62d35411927e..d6854dba0fd2 100644 --- a/packages/astro/test/fixtures/redirects/src/pages/late.astro +++ b/packages/astro/test/fixtures/redirects/src/pages/late.astro @@ -1,6 +1,6 @@ --- import Redirect from '../components/redirect.astro'; -const staticMode = import.meta.env.STATIC_MODE; +const staticMode = !!import.meta.env.STATIC_MODE; --- diff --git a/packages/astro/test/react-and-solid.test.js b/packages/astro/test/react-and-solid.test.ts similarity index 84% rename from packages/astro/test/react-and-solid.test.js rename to packages/astro/test/react-and-solid.test.ts index 59126166fe75..8c963181b440 100644 --- a/packages/astro/test/react-and-solid.test.js +++ b/packages/astro/test/react-and-solid.test.ts @@ -1,11 +1,10 @@ import assert from 'node:assert/strict'; import { before, describe, it } from 'node:test'; import * as cheerio from 'cheerio'; -import { loadFixture } from './test-utils.js'; +import { type Fixture, loadFixture } from './test-utils.js'; describe('Solid app with some React components', () => { - /** @type {import('./test-utils').Fixture} */ - let fixture; + let fixture: Fixture; before(async () => { fixture = await loadFixture({ root: './fixtures/react-and-solid/' }); diff --git a/packages/astro/test/react-jsx-export.test.js b/packages/astro/test/react-jsx-export.test.ts similarity index 76% rename from packages/astro/test/react-jsx-export.test.js rename to packages/astro/test/react-jsx-export.test.ts index 51b17e72454a..eaed036e0fa5 100644 --- a/packages/astro/test/react-jsx-export.test.js +++ b/packages/astro/test/react-jsx-export.test.ts @@ -1,12 +1,12 @@ import assert from 'node:assert/strict'; import { before, describe, it } from 'node:test'; import * as cheerio from 'cheerio'; -import { AstroLogger } from '../dist/core/logger/core.js'; -import { loadFixture } from './test-utils.js'; +import { type AstroLogMessage, AstroLogger } from '../dist/core/logger/core.js'; +import { type Fixture, loadFixture } from './test-utils.js'; describe('react-jsx-export', () => { - let fixture; - let logs = []; + let fixture: Fixture; + const logs: AstroLogMessage[] = []; const ids = [ 'anonymous_arrow_default_export', @@ -38,7 +38,10 @@ describe('react-jsx-export', () => { fixture = await loadFixture({ root: './fixtures/react-jsx-export/', }); - await fixture.build({ logger }); + await fixture.build({ + // @ts-expect-error: `logger` is @internal in AstroInlineConfig so it's stripped from dist types + logger + }); }); it('Can load all JSX components', async () => { @@ -52,7 +55,7 @@ describe('react-jsx-export', () => { it('Cannot output React Invalid Hook warning', async () => { assert.equal( - logs.every((log) => log.message.indexOf(reactInvalidHookWarning) === -1), + logs.every((log) => !log.message.includes(reactInvalidHookWarning)), true, ); }); diff --git a/packages/astro/test/redirects.test.js b/packages/astro/test/redirects.test.ts similarity index 89% rename from packages/astro/test/redirects.test.js rename to packages/astro/test/redirects.test.ts index f8ac1b20c138..910f9fb72732 100644 --- a/packages/astro/test/redirects.test.js +++ b/packages/astro/test/redirects.test.ts @@ -1,16 +1,14 @@ import assert from 'node:assert/strict'; import { after, before, describe, it } from 'node:test'; -import { loadFixture } from './test-utils.js'; +import { type DevServer, type Fixture, loadFixture } from './test-utils.js'; describe('Astro.redirect output: "static"', () => { - /** @type {import('./test-utils').Fixture} */ - let fixture; + let fixture: Fixture; describe('dev', () => { - /** @type {import('./test-utils.js').DevServer} */ - let devServer; + let devServer: DevServer; before(async () => { - process.env.STATIC_MODE = true; + process.env.STATIC_MODE = 'true'; fixture = await loadFixture({ root: './fixtures/redirects/', output: 'static', diff --git a/packages/astro/test/reexport-astro-containing-client-component.test.js b/packages/astro/test/reexport-astro-containing-client-component.test.ts similarity index 88% rename from packages/astro/test/reexport-astro-containing-client-component.test.js rename to packages/astro/test/reexport-astro-containing-client-component.test.ts index af290621092e..2391d5f36e41 100644 --- a/packages/astro/test/reexport-astro-containing-client-component.test.js +++ b/packages/astro/test/reexport-astro-containing-client-component.test.ts @@ -1,10 +1,10 @@ import assert from 'node:assert/strict'; import { before, describe, it } from 'node:test'; import * as cheerio from 'cheerio'; -import { loadFixture } from './test-utils.js'; +import { type Fixture, loadFixture } from './test-utils.js'; describe('Re-exported astro components with client components', () => { - let fixture; + let fixture: Fixture; before(async () => { fixture = await loadFixture({ root: './fixtures/reexport-astro-containing-client-component/' }); diff --git a/packages/astro/test/remote-css.test.js b/packages/astro/test/remote-css.test.ts similarity index 84% rename from packages/astro/test/remote-css.test.js rename to packages/astro/test/remote-css.test.ts index b6b0b03a1ad1..f5868cce86fe 100644 --- a/packages/astro/test/remote-css.test.js +++ b/packages/astro/test/remote-css.test.ts @@ -1,10 +1,10 @@ import assert from 'node:assert/strict'; import { before, describe, it } from 'node:test'; import * as cheerio from 'cheerio'; -import { loadFixture } from './test-utils.js'; +import { type Fixture, loadFixture } from './test-utils.js'; describe('Remote CSS', () => { - let fixture; + let fixture: Fixture; before(async () => { fixture = await loadFixture({ @@ -19,7 +19,7 @@ describe('Remote CSS', () => { const html = await fixture.readFile('/index.html'); const $ = cheerio.load(html); - const relPath = $('link').attr('href'); + const relPath = $('link').attr('href')!; const css = await fixture.readFile(relPath); assert.match(css, /https:\/\/unpkg.com\/open-props/); diff --git a/packages/astro/test/reuse-injected-entrypoint.test.js b/packages/astro/test/reuse-injected-entrypoint.test.ts similarity index 90% rename from packages/astro/test/reuse-injected-entrypoint.test.js rename to packages/astro/test/reuse-injected-entrypoint.test.ts index d0b004a455da..e6b8690cfead 100644 --- a/packages/astro/test/reuse-injected-entrypoint.test.js +++ b/packages/astro/test/reuse-injected-entrypoint.test.ts @@ -1,9 +1,19 @@ import assert from 'node:assert/strict'; import { after, before, describe, it } from 'node:test'; import { load as cheerioLoad } from 'cheerio'; -import { loadFixture } from './test-utils.js'; - -const routes = [ +import { type DevServer, type Fixture, loadFixture } from './test-utils.js'; + +type Route = { + description: string; + url: string; + h1?: string; + p?: string; + scriptContent?: string; + htmlMatch?: string; + fourOhFour?: boolean; +}; + +const routes: Route[] = [ { description: 'matches / to index.astro', url: '/', @@ -53,13 +63,13 @@ const routes = [ }, ]; -function appendForwardSlash(path) { +function appendForwardSlash(path: string) { return path.endsWith('/') ? path : path + '/'; } describe('Reuse injected entrypoint', () => { describe('build', () => { - let fixture; + let fixture: Fixture; before(async () => { fixture = await loadFixture({ @@ -107,8 +117,8 @@ describe('Reuse injected entrypoint', () => { }); describe('dev', () => { - let fixture; - let devServer; + let fixture: Fixture; + let devServer: DevServer; before(async () => { fixture = await loadFixture({ diff --git a/packages/astro/test/rewrite.test.js b/packages/astro/test/rewrite.test.ts similarity index 91% rename from packages/astro/test/rewrite.test.js rename to packages/astro/test/rewrite.test.ts index 1dfadd8e5af7..77dc89a8bf57 100644 --- a/packages/astro/test/rewrite.test.js +++ b/packages/astro/test/rewrite.test.ts @@ -1,12 +1,11 @@ import assert from 'node:assert/strict'; import { after, before, describe, it } from 'node:test'; import { load as cheerioLoad } from 'cheerio'; -import { loadFixture } from './test-utils.js'; +import { type DevServer, type Fixture, loadFixture } from './test-utils.js'; describe('Dev rewrite, trailing slash -> never', () => { - /** @type {import('./test-utils').Fixture} */ - let fixture; - let devServer; + let fixture: Fixture; + let devServer: DevServer; before(async () => { fixture = await loadFixture({ @@ -28,9 +27,8 @@ describe('Dev rewrite, trailing slash -> never', () => { }); describe('Dev rewrite, trailing slash -> never, with base', () => { - /** @type {import('./test-utils').Fixture} */ - let fixture; - let devServer; + let fixture: Fixture; + let devServer: DevServer; before(async () => { fixture = await loadFixture({ @@ -63,9 +61,8 @@ describe('Dev rewrite, trailing slash -> never, with base', () => { }); describe('Dev rewrite, hybrid/server', () => { - /** @type {import('./test-utils').Fixture} */ - let fixture; - let devServer; + let fixture: Fixture; + let devServer: DevServer; before(async () => { fixture = await loadFixture({ @@ -110,9 +107,8 @@ describe('Dev rewrite, hybrid/server', () => { }); describe('Dev rewrite URL contains base and has no trailing slash', () => { - /** @type {import('./test-utils').Fixture} */ - let fixture; - let devServer; + let fixture: Fixture; + let devServer: DevServer; before(async () => { fixture = await loadFixture({ @@ -176,9 +172,8 @@ describe('SSR route', () => { }); describe('Runtime error, default 500', () => { - /** @type {import('./test-utils').Fixture} */ - let fixture; - let devServer; + let fixture: Fixture; + let devServer: DevServer; before(async () => { fixture = await loadFixture({ @@ -200,9 +195,8 @@ describe('Runtime error, default 500', () => { }); describe('Runtime error in dev, custom 500', () => { - /** @type {import('./test-utils').Fixture} */ - let fixture; - let devServer; + let fixture: Fixture; + let devServer: DevServer; before(async () => { fixture = await loadFixture({ diff --git a/packages/astro/test/root-srcdir-css.test.js b/packages/astro/test/root-srcdir-css.test.ts similarity index 83% rename from packages/astro/test/root-srcdir-css.test.js rename to packages/astro/test/root-srcdir-css.test.ts index 581cce7a3814..30b36760cf4c 100644 --- a/packages/astro/test/root-srcdir-css.test.js +++ b/packages/astro/test/root-srcdir-css.test.ts @@ -1,10 +1,10 @@ import assert from 'node:assert/strict'; import { before, describe, it } from 'node:test'; import * as cheerio from 'cheerio'; -import { loadFixture } from './test-utils.js'; +import { type Fixture, loadFixture } from './test-utils.js'; describe('srcDir', () => { - let fixture; + let fixture: Fixture; before(async () => { fixture = await loadFixture({ @@ -19,7 +19,7 @@ describe('srcDir', () => { const html = await fixture.readFile('/index.html'); const $ = cheerio.load(html); - const relPath = $('link').attr('href'); + const relPath = $('link').attr('href')!; const css = await fixture.readFile(relPath); assert.match(css, /body\{color:green\}/); }); diff --git a/packages/astro/test/route-guard.test.js b/packages/astro/test/route-guard.test.ts similarity index 95% rename from packages/astro/test/route-guard.test.js rename to packages/astro/test/route-guard.test.ts index 6c2bd10d2352..69b96645ed78 100644 --- a/packages/astro/test/route-guard.test.js +++ b/packages/astro/test/route-guard.test.ts @@ -1,12 +1,10 @@ import assert from 'node:assert/strict'; import { after, before, describe, it } from 'node:test'; -import { loadFixture } from './test-utils.js'; +import { type DevServer, type Fixture, loadFixture } from './test-utils.js'; describe('Route Guard - Dev Server', () => { - /** @type {import('./test-utils').Fixture} */ - let fixture; - /** @type {import('./test-utils').DevServer} */ - let devServer; + let fixture: Fixture; + let devServer: DevServer; before(async () => { fixture = await loadFixture({ root: './fixtures/route-guard/' });