replace jest with ava
This commit is contained in:
parent
27cc8b23fe
commit
0347b72305
11775 changed files with 84546 additions and 1440575 deletions
73
node_modules/arrgv/test.js
generated
vendored
Normal file
73
node_modules/arrgv/test.js
generated
vendored
Normal file
|
|
@ -0,0 +1,73 @@
|
|||
const test = require('ava');
|
||||
const arrgv = require('.');
|
||||
|
||||
test('return array', t => {
|
||||
t.true(Array.isArray(arrgv()), 'array must be returned when no args');
|
||||
t.true(Array.isArray(arrgv('')), 'array must be returned on enpty string');
|
||||
t.true(Array.isArray(arrgv(1)), 'array must be returned on number');
|
||||
t.true(Array.isArray(arrgv([])), 'array must be returned on array');
|
||||
t.true(Array.isArray(arrgv({})), 'array must be returned on object');
|
||||
t.true(Array.isArray(arrgv(true)), 'array must be returned on true');
|
||||
t.true(Array.isArray(arrgv(false)), 'array must be returned on false');
|
||||
t.true(Array.isArray(arrgv(null)), 'array must be returned on null');
|
||||
t.true(Array.isArray(arrgv(undefined)), 'array must be returned when on undefined');
|
||||
});
|
||||
|
||||
test('split', t => {
|
||||
t.deepEqual(arrgv('aaa bbb ccc'), ['aaa', 'bbb', 'ccc'], 'splits easy args by space');
|
||||
t.deepEqual(arrgv(' aaa bbb ccc '), ['aaa', 'bbb', 'ccc'], 'trailing and leading spaces do not counts');
|
||||
t.deepEqual(arrgv('aaa bbb ccc'), ['aaa', 'bbb', 'ccc'], 'multi space works as single');
|
||||
});
|
||||
|
||||
test('double quotes', t => {
|
||||
t.deepEqual(arrgv('aaa "bbb" ccc'), ['aaa', 'bbb', 'ccc'], 'no double quotes in string args');
|
||||
t.deepEqual(arrgv('aaa "b\'bb" ccc'), ['aaa', 'b\'bb', 'ccc'], 'single quote saved in double quotes');
|
||||
t.deepEqual(arrgv('aaa "bb"b ccc'), ['aaa', 'bbb', 'ccc'], 'no double quotes inside words');
|
||||
t.deepEqual(arrgv('aaa "bbb ccc" ddd'), ['aaa', 'bbb ccc', 'ddd'], 'multi word args in double quotes');
|
||||
t.deepEqual(arrgv('aaa bbb" "ccc ddd'), ['aaa', 'bbb ccc', 'ddd'], 'multi word args with double quoted space');
|
||||
t.deepEqual(arrgv('aaa b"bb cc"c ddd'), ['aaa', 'bbb ccc', 'ddd'], 'double quotes in words make string arg');
|
||||
t.deepEqual(arrgv('aaa "" bbb'), ['aaa', '', 'bbb'], 'empty string in double quotes');
|
||||
t.deepEqual(arrgv('aaa ""'), ['aaa', ''], 'empty string in double quotes on last position');
|
||||
});
|
||||
|
||||
test('single quotes', t => {
|
||||
t.deepEqual(arrgv(`aaa 'bbb' ccc`), ['aaa', 'bbb', 'ccc'], 'no single quotes in string args');
|
||||
t.deepEqual(arrgv(`aaa 'b"bb' ccc`), ['aaa', 'b"bb', 'ccc'], 'double quote saved in single quotes');
|
||||
t.deepEqual(arrgv(`aaa 'bb'b ccc`), ['aaa', 'bbb', 'ccc'], 'no single quotes inside words');
|
||||
t.deepEqual(arrgv(`aaa 'bbb ccc' ddd`), ['aaa', 'bbb ccc', 'ddd'], 'multi word args in single quotes');
|
||||
t.deepEqual(arrgv(`aaa bbb' 'ccc ddd`), ['aaa', 'bbb ccc', 'ddd'], 'multi word args with single quoted space');
|
||||
t.deepEqual(arrgv(`aaa b'bb cc'c ddd`), ['aaa', 'bbb ccc', 'ddd'], 'single quotes in words make string arg');
|
||||
t.deepEqual(arrgv(`aaa '' bbb`), ['aaa', '', 'bbb'], 'empty string in single quotes');
|
||||
t.deepEqual(arrgv(`aaa ''`), ['aaa', ''], 'empty string in single quotes on last position');
|
||||
});
|
||||
|
||||
test('spaces', t => {
|
||||
t.deepEqual(arrgv(`aaa\nbbb`), ['aaa', 'bbb'], '\\n is delimiter');
|
||||
t.deepEqual(arrgv(`aaa\bbbb`), ['aaa', 'bbb'], '\\b is delimiter');
|
||||
t.deepEqual(arrgv(`aaa\rbbb`), ['aaa', 'bbb'], '\\r is delimiter');
|
||||
t.deepEqual(arrgv(`aaa\tbbb`), ['aaa', 'bbb'], '\\t is delimiter');
|
||||
t.deepEqual(arrgv(`aaa\fbbb`), ['aaa', 'bbb'], '\\f is delimiter');
|
||||
});
|
||||
|
||||
test('slashes', t => {
|
||||
t.deepEqual(arrgv('aaa \\"bbb c\\"cc ddd'), ['aaa', '"bbb', 'c"cc', 'ddd'], 'slashed double quotes is usual char');
|
||||
t.deepEqual(arrgv(`aaa \\'bbb c\\'cc ddd`), ['aaa', `'bbb`, `c'cc`, 'ddd'], 'slashed single quotes is usual char');
|
||||
t.deepEqual(arrgv('\\$\\`\\"\\h aaa'), ['$`"h', 'aaa'], 'no slashes outside quotes');
|
||||
t.deepEqual(arrgv('"\\$\\`\\"\\h aaa"'), ['$`"\\h aaa'], 'slashes saved in double quotes except $`"');
|
||||
t.deepEqual(arrgv('\'\\$\\`\\h aaa\''), ['\\$\\`\\h aaa'], 'slashes saved in single quotes');
|
||||
t.deepEqual(arrgv('"\\\\"'), ['\\'], 'slashes need escaping in double quotes');
|
||||
t.deepEqual(arrgv('\'\\\\\''), ['\\\\'], 'slashes saved as is in single quotes');
|
||||
});
|
||||
|
||||
test('errors', t => {
|
||||
t.throws(() => {
|
||||
arrgv('aaa"bbb');
|
||||
}, SyntaxError, 'double quotes must be closed');
|
||||
t.throws(() => {
|
||||
arrgv('aaa\'bbb');
|
||||
}, SyntaxError, 'single quotes must be closed');
|
||||
t.throws(() => {
|
||||
arrgv('aaa\\');
|
||||
}, SyntaxError, 'end of string must not to be escaped');
|
||||
});
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue