54ba9f5ee1
* Fix complex MDX parsing This allows fully MDX support using the micromark MDX extension. One caveat is that if you do something like use the less than sign, you need to escape it because the parser expects these to be tags otherwise. * Move micromark definition
53 lines
1.3 KiB
JavaScript
53 lines
1.3 KiB
JavaScript
import { suite } from 'uvu';
|
|
import * as assert from 'uvu/assert';
|
|
import { createRuntime } from '../lib/runtime.js';
|
|
import { loadConfig } from '../lib/config.js';
|
|
import { doc } from './test-utils.js';
|
|
|
|
const Markdown = suite('Astro Markdown');
|
|
|
|
let runtime, setupError;
|
|
|
|
Markdown.before(async () => {
|
|
const astroConfig = await loadConfig(new URL('./fixtures/astro-markdown', import.meta.url).pathname);
|
|
|
|
const logging = {
|
|
level: 'error',
|
|
dest: process.stderr,
|
|
};
|
|
|
|
try {
|
|
runtime = await createRuntime(astroConfig, { logging });
|
|
} catch (err) {
|
|
console.error(err);
|
|
setupError = err;
|
|
}
|
|
});
|
|
|
|
Markdown.after(async () => {
|
|
(await runtime) && runtime.shutdown();
|
|
});
|
|
|
|
Markdown('No errors creating a runtime', () => {
|
|
assert.equal(setupError, undefined);
|
|
});
|
|
|
|
Markdown('Can load markdown pages with hmx', async () => {
|
|
const result = await runtime.load('/post');
|
|
|
|
assert.equal(result.statusCode, 200);
|
|
|
|
const $ = doc(result.contents);
|
|
assert.ok($('#first').length, 'There is a div added in markdown');
|
|
assert.ok($('#test').length, 'There is a div added via a component from markdown');
|
|
});
|
|
|
|
Markdown('Can load more complex jsxy stuff', async () => {
|
|
const result = await runtime.load('/complex');
|
|
|
|
const $ = doc(result.contents);
|
|
const $el = $('#test');
|
|
assert.equal($el.text(), 'Hello world');
|
|
});
|
|
|
|
Markdown.run();
|