| // Flags: --expose-internals |
| 'use strict'; |
| |
| require('../common'); |
| const assert = require('assert'); |
| const { validateOneOf } = require('internal/validators'); |
| |
| { |
| // validateOneOf number incorrect. |
| const allowed = [2, 3]; |
| assert.throws(() => validateOneOf(1, 'name', allowed), { |
| code: 'ERR_INVALID_ARG_VALUE', |
| message: `The argument 'name' must be one of: 2, 3. Received 1` |
| }); |
| } |
| |
| { |
| // validateOneOf number correct. |
| validateOneOf(2, 'name', [1, 2]); |
| } |
| |
| { |
| // validateOneOf string incorrect. |
| const allowed = ['b', 'c']; |
| assert.throws(() => validateOneOf('a', 'name', allowed), { |
| code: 'ERR_INVALID_ARG_VALUE', |
| message: `The argument 'name' must be one of: 'b', 'c'. Received 'a'` |
| }); |
| } |
| |
| { |
| // validateOneOf string correct. |
| validateOneOf('two', 'name', ['one', 'two']); |
| } |
| |
| { |
| // validateOneOf Symbol incorrect. |
| const allowed = [Symbol.for('b'), Symbol.for('c')]; |
| assert.throws(() => validateOneOf(Symbol.for('a'), 'name', allowed), { |
| code: 'ERR_INVALID_ARG_VALUE', |
| message: `The argument 'name' must be one of: Symbol(b), Symbol(c). ` + |
| 'Received Symbol(a)' |
| }); |
| } |
| |
| { |
| // validateOneOf Symbol correct. |
| const allowed = [Symbol.for('b'), Symbol.for('c')]; |
| validateOneOf(Symbol.for('b'), 'name', allowed); |
| } |