1 | 'use strict'
|
2 | const TestRunner = require('test-runner')
|
3 | const a = require('assert')
|
4 | const Output = require('../lib/output')
|
5 | const Definitions = require('../lib/definitions')
|
6 |
|
7 | const runner = new TestRunner()
|
8 |
|
9 | runner.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 |
|
28 | runner.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 |
|
39 | runner.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 |
|
50 | runner.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 |
|
63 | runner.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 |
|
75 | runner.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 |
|
87 | runner.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 | })
|