import { suite } from 'uvu'; import * as assert from 'uvu/assert'; import { doc } from './test-utils.js'; import { setup } from './helpers.js'; const Expressions = suite('Expressions'); setup(Expressions, './fixtures/astro-expr'); Expressions('Can load page', async ({ runtime }) => { const result = await runtime.load('/'); assert.equal(result.statusCode, 200); const $ = doc(result.contents); for (let col of ['red', 'yellow', 'blue']) { assert.equal($('#' + col).length, 1); } }); Expressions('Ignores characters inside of strings', async ({ runtime }) => { const result = await runtime.load('/strings'); assert.equal(result.statusCode, 200); const $ = doc(result.contents); for (let col of ['red', 'yellow', 'blue']) { assert.equal($('#' + col).length, 1); } }); Expressions('Ignores characters inside of line comments', async ({ runtime }) => { const result = await runtime.load('/line-comments'); assert.equal(result.statusCode, 200); const $ = doc(result.contents); for (let col of ['red', 'yellow', 'blue']) { assert.equal($('#' + col).length, 1); } }); Expressions('Ignores characters inside of multiline comments', async ({ runtime }) => { const result = await runtime.load('/multiline-comments'); assert.equal(result.statusCode, 200); const $ = doc(result.contents); for (let col of ['red', 'yellow', 'blue']) { assert.equal($('#' + col).length, 1); } }); Expressions('Allows multiple JSX children in mustache', async ({ runtime }) => { const result = await runtime.load('/multiple-children'); assert.equal(result.statusCode, 200); assert.ok(result.contents.includes('#f') && !result.contents.includes('#t')); }); Expressions.run();