79 lines
1.9 KiB
JavaScript
Raw Normal View History

2018-05-16 10:10:23 +02:00
'use strict'
const TestRunner = require('test-runner')
const commandLineArgs = require('../')
const a = require('assert')
const runner = new TestRunner()
runner.test('camel-case: regular', function () {
const optionDefinitions = [
{ name: 'one-two' },
{ name: 'three', type: Boolean }
]
const argv = [ '--one-two', '1', '--three' ]
const result = commandLineArgs(optionDefinitions, { argv, camelCase: true })
a.deepStrictEqual(result, {
oneTwo: '1',
three: true
})
})
runner.test('camel-case: grouped', function () {
const optionDefinitions = [
{ name: 'one-one', group: 'a' },
{ name: 'two-two', group: 'a' },
{ name: 'three-three', group: 'b', type: Boolean },
{ name: 'four-four' }
]
const argv = [ '--one-one', '1', '--two-two', '2', '--three-three', '--four-four', '4' ]
const result = commandLineArgs(optionDefinitions, { argv, camelCase: true })
a.deepStrictEqual(result, {
a: {
oneOne: '1',
twoTwo: '2'
},
b: {
threeThree: true
},
_all: {
oneOne: '1',
twoTwo: '2',
threeThree: true,
fourFour: '4'
},
_none: {
fourFour: '4'
}
})
})
runner.test('camel-case: grouped with unknowns', function () {
const optionDefinitions = [
{ name: 'one-one', group: 'a' },
{ name: 'two-two', group: 'a' },
{ name: 'three-three', group: 'b', type: Boolean },
{ name: 'four-four' }
]
const argv = [ '--one-one', '1', '--two-two', '2', '--three-three', '--four-four', '4', '--five' ]
const result = commandLineArgs(optionDefinitions, { argv, camelCase: true, partial: true })
a.deepStrictEqual(result, {
a: {
oneOne: '1',
twoTwo: '2'
},
b: {
threeThree: true
},
_all: {
oneOne: '1',
twoTwo: '2',
threeThree: true,
fourFour: '4'
},
_none: {
fourFour: '4'
},
_unknown: [ '--five' ]
})
})