1 | const test = require('ava')
|
2 | const { parseRawFlags, aggressiveJSONParse } = require('./parse-raw-flags')
|
3 |
|
4 | test.serial('JSONTruthy works with various inputs', async t => {
|
5 | const testPairs = [
|
6 | {
|
7 | input: 'true',
|
8 | wanted: true
|
9 | },
|
10 | {
|
11 | input: 'false',
|
12 | wanted: false
|
13 | },
|
14 | {
|
15 | input: JSON.stringify({ foo: 'bar' }),
|
16 | wanted: { foo: 'bar' }
|
17 | },
|
18 | {
|
19 | input: 'Hello-world 1234',
|
20 | wanted: 'Hello-world 1234'
|
21 | }
|
22 | ]
|
23 |
|
24 | testPairs.forEach(pair => {
|
25 | t.deepEqual(aggressiveJSONParse(pair.input), pair.wanted)
|
26 | })
|
27 | })
|
28 |
|
29 | test.serial('parseRawFlags works', async t => {
|
30 | const input = [
|
31 | { type: 'arg', input: 'FAUNA' },
|
32 | { type: 'arg', input: 'FOO' },
|
33 | { type: 'arg', input: 'BAR' },
|
34 | { type: 'arg', input: '--hey' },
|
35 | { type: 'arg', input: 'hi' },
|
36 | { type: 'arg', input: '--heep' }
|
37 | ]
|
38 |
|
39 | const expected = { hey: 'hi', heep: true }
|
40 |
|
41 | t.deepEqual(parseRawFlags(input), expected, 'parse raw flag parses flags in an expected way')
|
42 | })
|