73 lines
1.8 KiB
JavaScript
73 lines
1.8 KiB
JavaScript
'use strict'
|
|
const TestRunner = require('test-runner')
|
|
const a = require('assert')
|
|
const Argv = require('../lib/argv')
|
|
const Definitions = require('../lib/definitions')
|
|
|
|
const runner = new TestRunner()
|
|
|
|
runner.test('.expandOptionEqualsNotation()', function () {
|
|
const argv = new Argv()
|
|
argv.load([ '--one=1', '--two', '2', '--three=3', '4' ])
|
|
argv.expandOptionEqualsNotation()
|
|
a.deepEqual(argv, [
|
|
'--one', '552f3a31-14cd-4ced-bd67-656a659e9efb1', '--two', '2', '--three', '552f3a31-14cd-4ced-bd67-656a659e9efb3', '4'
|
|
])
|
|
})
|
|
|
|
runner.test('.expandGetoptNotation()', function () {
|
|
const argv = new Argv()
|
|
argv.load([ '-abc' ])
|
|
argv.expandGetoptNotation()
|
|
a.deepEqual(argv.slice(), [
|
|
'-a', '-b', '-c'
|
|
])
|
|
})
|
|
|
|
runner.test('.expandGetoptNotation() with values', function () {
|
|
const argv = new Argv()
|
|
argv.load([ '-abc', '1', '-a', '2', '-bc' ])
|
|
argv.expandGetoptNotation()
|
|
a.deepEqual(argv, [
|
|
'-a', '-b', '-c', '1', '-a', '2', '-b', '-c'
|
|
])
|
|
})
|
|
|
|
runner.test('.validate()', function () {
|
|
const definitions = new Definitions()
|
|
definitions.load([
|
|
{ name: 'one', type: Number }
|
|
])
|
|
|
|
a.doesNotThrow(function () {
|
|
const argv = new Argv()
|
|
argv.load([ '--one', '1' ])
|
|
argv.validate(definitions)
|
|
})
|
|
|
|
a.throws(function () {
|
|
const argv = new Argv()
|
|
argv.load([ '--one', '--two' ])
|
|
argv.validate(definitions)
|
|
})
|
|
|
|
a.throws(function () {
|
|
const argv = new Argv()
|
|
argv.load([ '--one', '2', '--two', 'two' ])
|
|
argv.validate(definitions)
|
|
})
|
|
|
|
a.throws(function () {
|
|
const argv = new Argv()
|
|
argv.load([ '-a', '2' ])
|
|
argv.validate(definitions)
|
|
})
|
|
})
|
|
|
|
runner.test('expandOptionEqualsNotation', function () {
|
|
const argv = new Argv()
|
|
argv.load([ '--one=tree' ])
|
|
argv.expandOptionEqualsNotation()
|
|
a.deepEqual(argv, [ '--one', '552f3a31-14cd-4ced-bd67-656a659e9efbtree' ])
|
|
})
|