1 | 'use strict';
|
2 |
|
3 | var isOneOf = require('../src/oneOf'),
|
4 | assert = require('chai').assert;
|
5 |
|
6 | describe('oneOf', function() {
|
7 | var ALLOWED_VALUES = [1, '2', 'test'],
|
8 | VALID_VALUE = '2';
|
9 |
|
10 | it('throws an error if less than 2 allowed values provided', function() {
|
11 | assert.throws(function() {
|
12 | isOneOf()(VALID_VALUE);
|
13 | }, Error, 'At least 2 allowed values are required');
|
14 |
|
15 | assert.throws(function() {
|
16 | isOneOf(1)(VALID_VALUE);
|
17 | }, Error, 'At least 2 allowed values are required');
|
18 | });
|
19 |
|
20 | it('always returns a function', function() {
|
21 | assert.ok(isOneOf.apply(this, ALLOWED_VALUES) instanceof Function);
|
22 | });
|
23 |
|
24 | it('checks whether a value is equal to one of allowed values', function() {
|
25 | var predicate = isOneOf.apply(this, ALLOWED_VALUES);
|
26 |
|
27 | assert.ok(predicate(VALID_VALUE));
|
28 | assert.ok(!predicate(10));
|
29 | assert.ok(!predicate());
|
30 | });
|
31 |
|
32 | });
|