50 lines
1.2 KiB
JavaScript
50 lines
1.2 KiB
JavaScript
const { parse, inspect } = require('../../lib/index.cjs');
|
|
|
|
const source = `
|
|
/**
|
|
* Typedef with multi-line property type.
|
|
*
|
|
* @typedef {object} MyType
|
|
* @property {function(
|
|
* number,
|
|
* {x:string}
|
|
* )} numberEater Method
|
|
* which takes a number.
|
|
*/`;
|
|
|
|
test('default', () => {
|
|
const parsed = parse(source);
|
|
// console.log(inspect(parsed[0]));
|
|
expect(parsed[0].tags[1]).toMatchObject({
|
|
tag: 'property',
|
|
type: 'function(number,{x:string})',
|
|
name: 'numberEater',
|
|
description: 'Method which takes a number.',
|
|
problems: [],
|
|
});
|
|
});
|
|
|
|
test('preserve', () => {
|
|
const parsed = parse(source, { spacing: 'preserve' });
|
|
// console.log(inspect(parsed[0]));
|
|
expect(parsed[0].tags[1]).toMatchObject({
|
|
tag: 'property',
|
|
type: 'function(\n number,\n {x:string}\n)',
|
|
name: 'numberEater',
|
|
description: 'Method\n which takes a number.',
|
|
problems: [],
|
|
});
|
|
});
|
|
|
|
test('compact', () => {
|
|
const parsed = parse(source, { spacing: 'compact' });
|
|
// console.log(inspect(parsed[0]));
|
|
expect(parsed[0].tags[1]).toMatchObject({
|
|
tag: 'property',
|
|
type: 'function(number,{x:string})',
|
|
name: 'numberEater',
|
|
description: 'Method which takes a number.',
|
|
problems: [],
|
|
});
|
|
});
|