summaryrefslogtreecommitdiff
path: root/packages/markdown/remark/test/shiki.test.js
diff options
context:
space:
mode:
Diffstat (limited to 'packages/markdown/remark/test/shiki.test.js')
-rw-r--r--packages/markdown/remark/test/shiki.test.js53
1 files changed, 53 insertions, 0 deletions
diff --git a/packages/markdown/remark/test/shiki.test.js b/packages/markdown/remark/test/shiki.test.js
new file mode 100644
index 000000000..d6f3e8925
--- /dev/null
+++ b/packages/markdown/remark/test/shiki.test.js
@@ -0,0 +1,53 @@
+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();
+ const { code } = await processor.render('```\ntest\n```');
+
+ 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>');
+ });
+});