remark-markdown-extensions
Version:
A set of remark plugins for extended markdown syntax, including FAQ blocks with Schema.org data and styled asides.
30 lines (24 loc) • 1.16 kB
JavaScript
import fs from 'node:fs';
import path from 'node:path';
import { describe, it, expect } from 'vitest';
import { remark } from 'remark';
import remarkDirective from 'remark-directive';
import remarkRehype from 'remark-rehype';
import rehypeStringify from 'rehype-stringify';
import asidePlugin from '../plugins/aside.js';
import faqPlugin from '../plugins/faq.js';
describe('Integration: Combined Plugins', () => {
const asideFixture = fs.readFileSync(path.join(__dirname, 'fixtures', 'asidePlugin.md'), 'utf-8');
const faqFixture = fs.readFileSync(path.join(__dirname, 'fixtures', 'faqPlugin.md'), 'utf-8');
const combinedMarkdown = asideFixture + '\n\n' + faqFixture;
it('renders both plugins correctly together', async () => {
const processor = remark().use(remarkDirective);
processor.use(asidePlugin, { className: 'aside p-4' });
processor.use(faqPlugin, { faqClass: 'faq-block' });
processor.use(remarkRehype).use(rehypeStringify);
const file = await processor.process(combinedMarkdown);
const output = String(file);
expect(output).toContain('<aside');
expect(output).toContain('faq-block');
});
});