Skip to content

Commit 006d959

Browse files
committed
test: setupTokenHighlights
1 parent 0cdc9bd commit 006d959

File tree

2 files changed

+25
-2
lines changed

2 files changed

+25
-2
lines changed

src/utils.js

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,12 @@
11
/**
22
* Create & register the token `Highlight`'s in the `CSS.highlights` registry.
33
* This enables the use of `::highlight(tokenType)` in CSS to style them.
4-
* @param {Object} [languageTokens={}] - Language specific overwrites.
4+
*
5+
* @param {Array} [tokenTypes=[]] - Language token types
6+
* @param {Object} [options={}]
7+
* @param {Object} [options.languageTokens={}] - Language specific overwrites.
58
*/
6-
export function setupTokenHighlights(tokenTypes, { languageTokens = {} }) {
9+
export function setupTokenHighlights(tokenTypes = [], { languageTokens = {} } = {}) {
710
const languageTokenTypes = Object.entries(languageTokens).flatMap((entry) => {
811
const [lang, tokenTypes] = entry;
912
return tokenTypes.map((tokenType) => `${lang}-${tokenType}`);

src/utils.test.js

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
import { expect, test } from 'vitest';
2+
import { setupTokenHighlights } from './utils';
3+
4+
const tokenTypes = ['token-type-1', 'token-type-2'];
5+
6+
test('setupTokenHighlights', async () => {
7+
setupTokenHighlights(tokenTypes);
8+
for (const tokenType of tokenTypes) {
9+
expect(CSS.highlights.get(tokenType)).toBeInstanceOf(Highlight);
10+
}
11+
});
12+
13+
test('setupTokenHighlights - Language specific overwrites', async () => {
14+
const languageTokens = { css: ['important'], md: ['title', 'list'] };
15+
const languageTokenTypes = ['css-important', 'md-title', 'md-list'];
16+
setupTokenHighlights(tokenTypes, { languageTokens });
17+
for (const tokenType of [...tokenTypes, ...languageTokenTypes]) {
18+
expect(CSS.highlights.get(tokenType)).toBeInstanceOf(Highlight);
19+
}
20+
});

0 commit comments

Comments
 (0)