Files
NapCatQQ/.pnpm-store/v3/files/0b/71bddd399abbe9bf847fc0e571db7742e2d25530b4cbe214812b5fb3da4254ccaf80738b97b0a9e899d49cad3fac522060d51cb3d74c4eeefcfece8c18deb1
TanTan e311ca3275
Build NapCat Artifacts / Type Check & Test (push) Waiting to run
docs: 仓库链接指向本镜像仓库
2026-11-13 09:25:58 +08:00

113 lines
2.1 KiB
Plaintext

import tagTokenizer from '../../src/parser/tokenizers/tag.js';
import { seedTokens, seedSpec } from '../../src/util.js';
const tokenize = tagTokenizer();
test('ok', () => {
expect(
tokenize(
seedSpec({
source: [
{
number: 1,
source: '...',
tokens: seedTokens({
description: '@param {string} value value description 0',
}),
},
],
})
)
).toEqual(
seedSpec({
tag: 'param',
source: [
{
number: 1,
source: '...',
tokens: seedTokens({
tag: '@param',
postTag: ' ',
description: '{string} value value description 0',
}),
},
],
})
);
});
test('require @', () => {
expect(
tokenize(
seedSpec({
source: [
{
number: 42,
source: '...',
tokens: seedTokens({
description: 'param {string} value value description 0',
}),
},
],
})
)
).toEqual(
seedSpec({
problems: [
{
code: 'spec:tag:prefix',
message: 'tag should start with "@" symbol',
critical: true,
line: 42,
},
],
source: [
{
number: 42,
source: '...',
tokens: seedTokens({
description: 'param {string} value value description 0',
}),
},
],
})
);
});
test.each([
['@+tag', '+tag'],
['@-tag', '-tag'],
['@.tag', '.tag'],
])('loose tag - %s', (token, tag) => {
expect(
tokenize(
seedSpec({
source: [
{
number: 1,
source: '...',
tokens: seedTokens({
description: token + ' name description',
}),
},
],
})
)
).toEqual(
seedSpec({
tag,
source: [
{
number: 1,
source: '...',
tokens: seedTokens({
tag: token,
postTag: ' ',
description: 'name description',
}),
},
],
})
);
});