| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- /**
- * @typedef {import('mdast').Root} Root
- */
- import fs from 'node:fs';
- import path from 'node:path';
- import { isHidden } from 'is-hidden';
- import { remark } from 'remark';
- import test from 'tape';
- import { readSync } from 'to-vfile';
- import { unified } from 'unified';
- import { remarkGrowiPlugin } from '../src/remark-growi-plugin.js';
- test('directive()', (t) => {
- t.doesNotThrow(() => {
- remark().use(remarkGrowiPlugin).freeze();
- }, 'should not throw if not passed options');
- t.doesNotThrow(() => {
- unified().use(remarkGrowiPlugin).freeze();
- }, 'should not throw if without parser or compiler');
- t.end();
- });
- test('fixtures', (t) => {
- const base = path.join('test', 'fixtures');
- const entries = fs.readdirSync(base).filter(d => !isHidden(d));
- t.plan(entries.length);
- let index = -1;
- while (++index < entries.length) {
- const fixture = entries[index];
- t.test(fixture, (st) => {
- const file = readSync(path.join(base, fixture, 'input.md'));
- const input = String(file);
- const outputPath = path.join(base, fixture, 'output.md');
- const treePath = path.join(base, fixture, 'tree.json');
- const proc = remark().use(remarkGrowiPlugin).freeze();
- const actual = proc.parse(file);
- /** @type {string} */
- let output;
- /** @type {Root} */
- let expected;
- try {
- expected = JSON.parse(String(fs.readFileSync(treePath)));
- }
- catch {
- // New fixture.
- fs.writeFileSync(treePath, `${JSON.stringify(actual, null, 2)}\n`);
- expected = actual;
- }
- try {
- output = fs.readFileSync(outputPath, 'utf8');
- }
- catch {
- output = input;
- }
- st.deepEqual(actual, expected, 'tree');
- st.equal(String(proc.processSync(file)), output, 'process');
- st.end();
- });
- }
- });
|