Spaces:
Sleeping
Sleeping
const TestRunner = require('test-runner') | |
const FlagOption = require('../../lib/option-flag') | |
const a = require('assert') | |
const runner = new TestRunner() | |
runner.test('type-boolean: single set', function () { | |
const option = new FlagOption({ name: 'one', type: Boolean }) | |
option.set(undefined) | |
a.strictEqual(option.get(), true) | |
}) | |
runner.test('type-boolean: single set 2', function () { | |
const option = new FlagOption({ name: 'one', type: Boolean }) | |
option.set('true') | |
a.strictEqual(option.get(), true) | |
}) | |
runner.test('type-boolean: set twice', function () { | |
const option = new FlagOption({ name: 'one', type: Boolean }) | |
option.set(undefined) | |
a.strictEqual(option.get(), true) | |
a.throws( | |
() => option.set('true'), | |
err => err.name === 'ALREADY_SET' | |
) | |
}) | |
const origBoolean = Boolean | |
/* test in contexts which override the standard global Boolean constructor */ | |
runner.test('type-boolean: global Boolean overridden', function () { | |
function Boolean () { | |
return origBoolean.apply(origBoolean, arguments) | |
} | |
const option = new FlagOption({ name: 'one', type: Boolean }) | |
option.set() | |
a.strictEqual(option.get(), true) | |
}) | |
runner.test('type-boolean-multiple: 1', function () { | |
const option = new FlagOption({ name: 'one', type: Boolean, multiple: true }) | |
option.set(undefined) | |
option.set(undefined) | |
option.set(undefined) | |
a.deepStrictEqual(option.get(), [ true, true, true ]) | |
}) | |