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: [], }); });