import { fileURLToPath } from 'url'; import { suite } from 'uvu'; import * as assert from 'uvu/assert'; import { loadConfig } from '../lib/config.js'; import { createRuntime } from '../lib/runtime.js'; const DType = suite('doctype'); let runtime, setupError; DType.before(async () => { try { const astroConfig = await loadConfig(fileURLToPath(new URL('./fixtures/astro-doctype', import.meta.url))); const logging = { level: 'error', dest: process.stderr, }; runtime = await createRuntime(astroConfig, { logging }); } catch (err) { console.error(err); setupError = err; } }); DType.after(async () => { (await runtime) && runtime.shutdown(); }); DType('No errors creating a runtime', () => { assert.equal(setupError, undefined); }); DType('Automatically prepends the standards mode doctype', async () => { const result = await runtime.load('/prepend'); assert.equal(result.statusCode, 200); const html = result.contents.toString('utf-8'); assert.ok(html.startsWith(''), 'Doctype always included'); }); DType.skip('Preserves user provided doctype', async () => { const result = await runtime.load('/preserve'); assert.equal(result.statusCode, 200); const html = result.contents.toString('utf-8'); assert.ok(html.startsWith(''), 'Doctype included was preserved'); }); DType.run();