astro/test/astro-markdown.test.js
Matthew Phillips 54ba9f5ee1
Fix complex MDX parsing (#50)
* 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
2021-04-01 16:34:11 -04:00

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();