99 lines
3.1 KiB
JavaScript
99 lines
3.1 KiB
JavaScript
'use strict'
|
|
const TestRunner = require('test-runner')
|
|
const a = require('assert')
|
|
const Output = require('../lib/output')
|
|
const Definitions = require('../lib/definitions')
|
|
|
|
const runner = new TestRunner()
|
|
|
|
runner.test('output.setFlag(name): initial value', function () {
|
|
let definitions = new Definitions()
|
|
definitions.load([
|
|
{ name: 'one', type: Number }
|
|
])
|
|
let output = new Output(definitions)
|
|
a.strictEqual(output.get('one'), undefined)
|
|
output.setFlag('--one')
|
|
a.strictEqual(output.get('one'), null)
|
|
|
|
definitions.load([
|
|
{ name: 'one', type: Boolean }
|
|
])
|
|
output = new Output(definitions)
|
|
a.strictEqual(output.get('one'), undefined)
|
|
output.setFlag('--one')
|
|
a.strictEqual(output.get('one'), true)
|
|
})
|
|
|
|
runner.test('output.setOptionValue(name, value)', function () {
|
|
const definitions = new Definitions()
|
|
definitions.load([
|
|
{ name: 'one', type: Number, defaultValue: 1 }
|
|
])
|
|
const output = new Output(definitions)
|
|
a.strictEqual(output.get('one'), 1)
|
|
output.setOptionValue('--one', '2')
|
|
a.strictEqual(output.get('one'), 2)
|
|
})
|
|
|
|
runner.test('output.setOptionValue(name, value): multiple, defaultValue', function () {
|
|
const definitions = new Definitions()
|
|
definitions.load([
|
|
{ name: 'one', type: Number, multiple: true, defaultValue: [ 1 ] }
|
|
])
|
|
const output = new Output(definitions)
|
|
a.deepStrictEqual(output.get('one'), [ 1 ])
|
|
output.setOptionValue('--one', '2')
|
|
a.deepStrictEqual(output.get('one'), [ 2 ])
|
|
})
|
|
|
|
runner.test('output.setOptionValue(name, value): multiple 2', function () {
|
|
const definitions = new Definitions()
|
|
definitions.load([
|
|
{ name: 'one', type: Number, multiple: true }
|
|
])
|
|
const output = new Output(definitions)
|
|
a.deepStrictEqual(output.get('one'), undefined)
|
|
output.setOptionValue('--one', '2')
|
|
a.deepStrictEqual(output.get('one'), [ 2 ])
|
|
output.setOptionValue('--one', '3')
|
|
a.deepStrictEqual(output.get('one'), [ 2, 3 ])
|
|
})
|
|
|
|
runner.test('output.setValue(value): no defaultOption', function () {
|
|
const definitions = new Definitions()
|
|
definitions.load([
|
|
{ name: 'one', type: Number }
|
|
])
|
|
const output = new Output(definitions)
|
|
a.deepStrictEqual(output.get('one'), undefined)
|
|
output.setValue('2')
|
|
a.deepStrictEqual(output.get('one'), undefined)
|
|
a.deepStrictEqual(output.unknown, [ '2' ])
|
|
})
|
|
|
|
runner.test('output.setValue(value): with defaultOption', function () {
|
|
const definitions = new Definitions()
|
|
definitions.load([
|
|
{ name: 'one', type: Number, defaultOption: true }
|
|
])
|
|
const output = new Output(definitions)
|
|
a.deepStrictEqual(output.get('one'), undefined)
|
|
output.setValue('2')
|
|
a.deepStrictEqual(output.get('one'), 2)
|
|
a.deepStrictEqual(output.unknown, [])
|
|
})
|
|
|
|
runner.test('output.setValue(value): multiple', function () {
|
|
const definitions = new Definitions()
|
|
definitions.load([
|
|
{ name: 'one', multiple: true, defaultOption: true }
|
|
])
|
|
const output = new Output(definitions)
|
|
a.deepStrictEqual(output.get('one'), undefined)
|
|
output.setValue('1')
|
|
a.deepStrictEqual(output.get('one'), [ '1' ])
|
|
output.setValue('2')
|
|
a.deepStrictEqual(output.get('one'), [ '1', '2' ])
|
|
})
|