79 lines
1.9 KiB
JavaScript
79 lines
1.9 KiB
JavaScript
'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' ]
|
|
})
|
|
})
|