antsibull-docs
Version:
TypeScript library for processing Ansible documentation markup
49 lines (45 loc) • 2.37 kB
text/typescript
/*
Simplified BSD License (see LICENSES/BSD-2-Clause.txt or https://opensource.org/licenses/BSD-2-Clause)
SPDX-FileCopyrightText: Ansible Project
SPDX-License-Identifier: BSD-2-Clause
*/
import { parseEscapedArgs, parseUnescapedArgs } from './parser-impl';
describe('parse escaped args', (): void => {
it('parse tests', (): void => {
expect(parseEscapedArgs('(a)', 1, 1)).toEqual([['a'], 3, undefined]);
expect(parseEscapedArgs('(a,b)', 1, 1)).toEqual([['a,b'], 5, undefined]);
expect(parseEscapedArgs('(a,b,c)', 1, 1)).toEqual([['a,b,c'], 7, undefined]);
expect(parseEscapedArgs('(a,b)', 1, 2)).toEqual([['a', 'b'], 5, undefined]);
expect(parseEscapedArgs('(a,b,c)', 1, 2)).toEqual([['a', 'b,c'], 7, undefined]);
expect(parseEscapedArgs('(a,b,c)', 1, 3)).toEqual([['a', 'b', 'c'], 7, undefined]);
expect(parseEscapedArgs('(a\\,,b\\,\\),c\\))', 1, 3)).toEqual([['a,', 'b,)', 'c)'], 15, undefined]);
});
it('error tests)', (): void => {
expect(parseEscapedArgs('(a', 1, 1)).toEqual([[''], 2, 'Cannot find closing ")" after last parameter']);
expect(parseEscapedArgs('(a', 1, 2)).toEqual([
[''],
2,
'Cannot find comma separating parameter 1 from the next one',
]);
expect(parseEscapedArgs('(a,b', 1, 2)).toEqual([['a', ''], 4, 'Cannot find closing ")" after last parameter']);
});
});
describe('parse unescaped args', (): void => {
it('parse tests', (): void => {
expect(parseUnescapedArgs('(a)', 1, 1)).toEqual([['a'], 3, undefined]);
expect(parseUnescapedArgs('(a,b)', 1, 1)).toEqual([['a,b'], 5, undefined]);
expect(parseUnescapedArgs('(a,b,c)', 1, 1)).toEqual([['a,b,c'], 7, undefined]);
expect(parseUnescapedArgs('(a,b)', 1, 2)).toEqual([['a', 'b'], 5, undefined]);
expect(parseUnescapedArgs('(a,b,c)', 1, 2)).toEqual([['a', 'b,c'], 7, undefined]);
expect(parseUnescapedArgs('(a,b,c)', 1, 3)).toEqual([['a', 'b', 'c'], 7, undefined]);
});
it('error tests)', (): void => {
expect(parseUnescapedArgs('(a', 1, 1)).toEqual([[], 2, 'Cannot find closing ")" after last parameter']);
expect(parseUnescapedArgs('(a', 1, 2)).toEqual([
[],
2,
'Cannot find comma separating parameter 1 from the next one',
]);
expect(parseUnescapedArgs('(a,b', 1, 2)).toEqual([['a'], 4, 'Cannot find closing ")" after last parameter']);
});
});