170 lines
3.0 KiB
TypeScript
170 lines
3.0 KiB
TypeScript
import getStringifier from '../../src/stringifier/index.js';
|
|
|
|
const source = [
|
|
{
|
|
number: 1,
|
|
source: ' /**',
|
|
tokens: {
|
|
start: ' ',
|
|
delimiter: '/**',
|
|
postDelimiter: '',
|
|
tag: '',
|
|
postTag: '',
|
|
name: '',
|
|
postName: '',
|
|
type: '',
|
|
postType: '',
|
|
description: '',
|
|
end: '',
|
|
lineEnd: '',
|
|
},
|
|
},
|
|
{
|
|
number: 2,
|
|
source: ' * Description may go',
|
|
tokens: {
|
|
start: ' ',
|
|
delimiter: '*',
|
|
postDelimiter: ' ',
|
|
tag: '',
|
|
postTag: '',
|
|
name: '',
|
|
postName: '',
|
|
type: '',
|
|
postType: '',
|
|
description: 'Description may go',
|
|
end: '',
|
|
lineEnd: '',
|
|
},
|
|
},
|
|
{
|
|
number: 3,
|
|
source: ' * over multiple lines followed by @tags',
|
|
tokens: {
|
|
start: ' ',
|
|
delimiter: '*',
|
|
postDelimiter: ' ',
|
|
tag: '',
|
|
postTag: '',
|
|
name: '',
|
|
postName: '',
|
|
type: '',
|
|
postType: '',
|
|
description: 'over multiple lines followed by @tags',
|
|
end: '',
|
|
lineEnd: '',
|
|
},
|
|
},
|
|
{
|
|
number: 4,
|
|
source: ' *',
|
|
tokens: {
|
|
start: ' ',
|
|
delimiter: '*',
|
|
postDelimiter: ' ',
|
|
tag: '',
|
|
postTag: '',
|
|
name: '',
|
|
postName: '',
|
|
type: '',
|
|
postType: '',
|
|
description: '',
|
|
end: '',
|
|
lineEnd: '',
|
|
},
|
|
},
|
|
{
|
|
number: 5,
|
|
source: '* @my-tag {my.type} my-name description line 1',
|
|
tokens: {
|
|
start: '',
|
|
delimiter: '*',
|
|
postDelimiter: ' ',
|
|
tag: '@my-tag',
|
|
postTag: ' ',
|
|
name: 'my-name',
|
|
postName: ' ',
|
|
type: '{my.type}',
|
|
postType: ' ',
|
|
description: 'description line 1',
|
|
end: '',
|
|
lineEnd: '',
|
|
},
|
|
},
|
|
{
|
|
number: 6,
|
|
source: ' description line 2',
|
|
tokens: {
|
|
start: ' ',
|
|
delimiter: '',
|
|
postDelimiter: '',
|
|
tag: '',
|
|
postTag: '',
|
|
name: '',
|
|
postName: '',
|
|
type: '',
|
|
postType: '',
|
|
description: 'description line 2',
|
|
end: '',
|
|
lineEnd: '',
|
|
},
|
|
},
|
|
{
|
|
number: 7,
|
|
source: ' * description line 3',
|
|
tokens: {
|
|
start: ' ',
|
|
delimiter: '*',
|
|
postDelimiter: ' ',
|
|
tag: '',
|
|
postTag: '',
|
|
name: '',
|
|
postName: '',
|
|
type: '',
|
|
postType: '',
|
|
description: 'description line 3',
|
|
end: '',
|
|
lineEnd: '',
|
|
},
|
|
},
|
|
{
|
|
number: 8,
|
|
source: ' */',
|
|
tokens: {
|
|
start: ' ',
|
|
delimiter: '',
|
|
postDelimiter: '',
|
|
tag: '',
|
|
postTag: '',
|
|
name: '',
|
|
postName: '',
|
|
type: '',
|
|
postType: '',
|
|
description: '',
|
|
end: '*/',
|
|
lineEnd: '',
|
|
},
|
|
},
|
|
];
|
|
|
|
const block = {
|
|
description: '',
|
|
tags: [],
|
|
source,
|
|
problems: [],
|
|
};
|
|
|
|
test('default', () => {
|
|
const s = getStringifier()(block);
|
|
const expected = `
|
|
/**
|
|
* Description may go
|
|
* over multiple lines followed by @tags
|
|
*
|
|
* @my-tag {my.type} my-name description line 1
|
|
description line 2
|
|
* description line 3
|
|
*/`;
|
|
expect(s).toBe(expected.slice(1));
|
|
});
|