0
Fork 0
mirror of https://github.com/withastro/astro.git synced 2024-12-23 21:53:55 -05:00
astro/test/hmx-markdown.test.js
Matthew Phillips ed85702581
Allow HMX components in markdown (#19)
* Allow HMX components in markdown

This adds support for HMX components in markdown. The mechanism for importing is via frontmatter. We could do this differently (setup script maybe?) but since this was the easiest to implement I thought it was a good first-pass option.

* Remove node-fetch from snowpack config

* Assert that the runtime is created successfully

* Add back in the micromark extension for encoding entities

* Encode both codeTextData and codeFlowValue

* Install snowpack app's deps
2021-03-23 15:20:03 -04:00

45 lines
No EOL
1.1 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 HMXMD = suite('HMX Markdown');
let runtime, setupError;
HMXMD.before(async () => {
const astroConfig = await loadConfig(new URL('./fixtures/hmx-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;
}
});
HMXMD.after(async () => {
runtime && runtime.shutdown();
});
HMXMD('No errors creating a runtime', () => {
assert.equal(setupError, undefined);
});
HMXMD('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');
});
HMXMD.run();