UNPKG

3.14 kBJavaScriptView Raw
1'use strict'
2const TestRunner = require('test-runner')
3const a = require('assert')
4const Output = require('../lib/output')
5const Definitions = require('../lib/definitions')
6
7const runner = new TestRunner()
8
9runner.test('output.setFlag(name): initial value', function () {
10 let definitions = new Definitions()
11 definitions.load([
12 { name: 'one', type: Number }
13 ])
14 let output = new Output(definitions)
15 a.strictEqual(output.get('one'), undefined)
16 output.setFlag('--one')
17 a.strictEqual(output.get('one'), null)
18
19 definitions.load([
20 { name: 'one', type: Boolean }
21 ])
22 output = new Output(definitions)
23 a.strictEqual(output.get('one'), undefined)
24 output.setFlag('--one')
25 a.strictEqual(output.get('one'), true)
26})
27
28runner.test('output.setOptionValue(name, value)', function () {
29 const definitions = new Definitions()
30 definitions.load([
31 { name: 'one', type: Number, defaultValue: 1 }
32 ])
33 const output = new Output(definitions)
34 a.strictEqual(output.get('one'), 1)
35 output.setOptionValue('--one', '2')
36 a.strictEqual(output.get('one'), 2)
37})
38
39runner.test('output.setOptionValue(name, value): multiple, defaultValue', function () {
40 const definitions = new Definitions()
41 definitions.load([
42 { name: 'one', type: Number, multiple: true, defaultValue: [ 1 ] }
43 ])
44 const output = new Output(definitions)
45 a.deepStrictEqual(output.get('one'), [ 1 ])
46 output.setOptionValue('--one', '2')
47 a.deepStrictEqual(output.get('one'), [ 2 ])
48})
49
50runner.test('output.setOptionValue(name, value): multiple 2', function () {
51 const definitions = new Definitions()
52 definitions.load([
53 { name: 'one', type: Number, multiple: true }
54 ])
55 const output = new Output(definitions)
56 a.deepStrictEqual(output.get('one'), undefined)
57 output.setOptionValue('--one', '2')
58 a.deepStrictEqual(output.get('one'), [ 2 ])
59 output.setOptionValue('--one', '3')
60 a.deepStrictEqual(output.get('one'), [ 2, 3 ])
61})
62
63runner.test('output.setValue(value): no defaultOption', function () {
64 const definitions = new Definitions()
65 definitions.load([
66 { name: 'one', type: Number }
67 ])
68 const output = new Output(definitions)
69 a.deepStrictEqual(output.get('one'), undefined)
70 output.setValue('2')
71 a.deepStrictEqual(output.get('one'), undefined)
72 a.deepStrictEqual(output.unknown, [ '2' ])
73})
74
75runner.test('output.setValue(value): with defaultOption', function () {
76 const definitions = new Definitions()
77 definitions.load([
78 { name: 'one', type: Number, defaultOption: true }
79 ])
80 const output = new Output(definitions)
81 a.deepStrictEqual(output.get('one'), undefined)
82 output.setValue('2')
83 a.deepStrictEqual(output.get('one'), 2)
84 a.deepStrictEqual(output.unknown, [])
85})
86
87runner.test('output.setValue(value): multiple', function () {
88 const definitions = new Definitions()
89 definitions.load([
90 { name: 'one', multiple: true, defaultOption: true }
91 ])
92 const output = new Output(definitions)
93 a.deepStrictEqual(output.get('one'), undefined)
94 output.setValue('1')
95 a.deepStrictEqual(output.get('one'), [ '1' ])
96 output.setValue('2')
97 a.deepStrictEqual(output.get('one'), [ '1', '2' ])
98})