1 | 'use strict';
|
---|
2 |
|
---|
3 | var parse = require('../');
|
---|
4 | var test = require('tape');
|
---|
5 |
|
---|
6 | test('-', function (t) {
|
---|
7 | t.plan(6);
|
---|
8 | t.deepEqual(parse(['-n', '-']), { n: '-', _: [] });
|
---|
9 | t.deepEqual(parse(['--nnn', '-']), { nnn: '-', _: [] });
|
---|
10 | t.deepEqual(parse(['-']), { _: ['-'] });
|
---|
11 | t.deepEqual(parse(['-f-']), { f: '-', _: [] });
|
---|
12 | t.deepEqual(
|
---|
13 | parse(['-b', '-'], { boolean: 'b' }),
|
---|
14 | { b: true, _: ['-'] }
|
---|
15 | );
|
---|
16 | t.deepEqual(
|
---|
17 | parse(['-s', '-'], { string: 's' }),
|
---|
18 | { s: '-', _: [] }
|
---|
19 | );
|
---|
20 | });
|
---|
21 |
|
---|
22 | test('-a -- b', function (t) {
|
---|
23 | t.plan(2);
|
---|
24 | t.deepEqual(parse(['-a', '--', 'b']), { a: true, _: ['b'] });
|
---|
25 | t.deepEqual(parse(['--a', '--', 'b']), { a: true, _: ['b'] });
|
---|
26 | });
|
---|
27 |
|
---|
28 | test('move arguments after the -- into their own `--` array', function (t) {
|
---|
29 | t.plan(1);
|
---|
30 | t.deepEqual(
|
---|
31 | parse(['--name', 'John', 'before', '--', 'after'], { '--': true }),
|
---|
32 | { name: 'John', _: ['before'], '--': ['after'] }
|
---|
33 | );
|
---|
34 | });
|
---|
35 |
|
---|
36 | test('--- option value', function (t) {
|
---|
37 | // A multi-dash value is largely an edge case, but check the behaviour is as expected,
|
---|
38 | // and in particular the same for short option and long option (as made consistent in Jan 2023).
|
---|
39 | t.plan(2);
|
---|
40 | t.deepEqual(parse(['-n', '---']), { n: '---', _: [] });
|
---|
41 | t.deepEqual(parse(['--nnn', '---']), { nnn: '---', _: [] });
|
---|
42 | });
|
---|
43 |
|
---|