0
Fork 0
mirror of https://github.com/withastro/astro.git synced 2024-12-16 21:46:22 -05:00
astro/packages/markdown/remark/test/shiki.test.js

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

54 lines
1.6 KiB
JavaScript
Raw Normal View History

import { createMarkdownProcessor, createShikiHighlighter } from '../dist/index.js';
import chai from 'chai';
describe('shiki syntax highlighting', () => {
it('does not add is:raw to the output', async () => {
const processor = await createMarkdownProcessor();
2023-10-04 05:26:21 -05:00
const { code } = await processor.render('```\ntest\n```');
2023-10-04 05:26:21 -05:00
chai.expect(code).not.to.contain('is:raw');
});
it('supports light/dark themes', async () => {
const processor = await createMarkdownProcessor({
shikiConfig: {
experimentalThemes: {
light: 'github-light',
dark: 'github-dark',
},
},
});
const { code } = await processor.render('```\ntest\n```');
// light theme is there:
chai.expect(code).to.contain('background-color:');
chai.expect(code).to.contain('github-light');
// dark theme is there:
chai.expect(code).to.contain('--shiki-dark-bg:');
chai.expect(code).to.contain('github-dark');
});
it('createShikiHighlighter works', async () => {
const highlighter = await createShikiHighlighter();
const html = highlighter.highlight('const foo = "bar";', 'js');
chai.expect(html).to.contain('astro-code github-dark');
chai.expect(html).to.contain('background-color:#24292e;color:#e1e4e8;');
});
it('diff +/- text has user-select: none', async () => {
const highlighter = await createShikiHighlighter();
const html = highlighter.highlight(
`\
- const foo = "bar";
+ const foo = "world";`,
'diff'
);
chai.expect(html).to.contain('user-select: none');
chai.expect(html).to.contain('>-</span>');
chai.expect(html).to.contain('>+</span>');
});
2023-10-04 05:26:21 -05:00
});