From 4018b5024724a9035ca934aa5a97d4f8a54e681a Mon Sep 17 00:00:00 2001 From: Rich Harris Date: Mon, 23 Jun 2025 07:07:20 -0400 Subject: [PATCH] add separate test suite --- .../tests/print/samples/basic/input.svelte | 7 ++++ .../tests/print/samples/basic/output.svelte | 5 +++ packages/svelte/tests/print/test.ts | 32 +++++++++++++++++++ 3 files changed, 44 insertions(+) create mode 100644 packages/svelte/tests/print/samples/basic/input.svelte create mode 100644 packages/svelte/tests/print/samples/basic/output.svelte create mode 100644 packages/svelte/tests/print/test.ts diff --git a/packages/svelte/tests/print/samples/basic/input.svelte b/packages/svelte/tests/print/samples/basic/input.svelte new file mode 100644 index 0000000000..bff6bee537 --- /dev/null +++ b/packages/svelte/tests/print/samples/basic/input.svelte @@ -0,0 +1,7 @@ + + +

+ Hello {name}! +

diff --git a/packages/svelte/tests/print/samples/basic/output.svelte b/packages/svelte/tests/print/samples/basic/output.svelte new file mode 100644 index 0000000000..22b3c84db0 --- /dev/null +++ b/packages/svelte/tests/print/samples/basic/output.svelte @@ -0,0 +1,5 @@ + + +

Hello {name}!

\ No newline at end of file diff --git a/packages/svelte/tests/print/test.ts b/packages/svelte/tests/print/test.ts new file mode 100644 index 0000000000..776a6a4ca4 --- /dev/null +++ b/packages/svelte/tests/print/test.ts @@ -0,0 +1,32 @@ +import * as fs from 'node:fs'; +import { assert, it } from 'vitest'; +import { parse, print } from 'svelte/compiler'; +import { try_load_json } from '../helpers.js'; +import { suite, type BaseTest } from '../suite.js'; +import { walk } from 'zimmerframe'; +import type { AST } from 'svelte/compiler'; + +interface ParserTest extends BaseTest {} + +const { test, run } = suite(async (config, cwd) => { + const input = fs.readFileSync(`${cwd}/input.svelte`, 'utf-8'); + + const ast = parse(input, { modern: true }); + const output = print(ast); + + // run `UPDATE_SNAPSHOTS=true pnpm test parser` to update parser tests + if (process.env.UPDATE_SNAPSHOTS) { + fs.writeFileSync(`${cwd}/output.svelte`, output.code); + } else { + fs.writeFileSync(`${cwd}/_actual.svelte`, output.code); + + const file = `${cwd}/output.svelte`; + + const expected = fs.existsSync(file) ? fs.readFileSync(file, 'utf-8') : ''; + assert.deepEqual(output.code, expected); + } +}); + +export { test }; + +await run(__dirname);