1 | 'use strict';
|
2 |
|
3 | var isInstanceOf = require('../src/instanceOf'),
|
4 | assert = require('chai').assert;
|
5 |
|
6 | describe('instanceOf', function() {
|
7 | var CLAZZ = function() {};
|
8 |
|
9 | it('throws TypeError if class is not a function', function() {
|
10 | var notFunction = 'definitely not a function';
|
11 | assert.throws(function() {
|
12 | isInstanceOf(notFunction);
|
13 | }, TypeError, /must be a function/);
|
14 | assert.throws(function() {
|
15 | isInstanceOf(notFunction)({});
|
16 | }, TypeError, /must be a function/);
|
17 | });
|
18 |
|
19 | it('returns another function if only one argument provided', function() {
|
20 | assert.ok(isInstanceOf(CLAZZ) instanceof Function);
|
21 | });
|
22 |
|
23 | it('returns true if value is an instance of given "class"', function() {
|
24 | assert.ok(isInstanceOf(CLAZZ, new CLAZZ));
|
25 | assert.ok(isInstanceOf(CLAZZ)(new CLAZZ));
|
26 | assert.ok(isInstanceOf(Array, []));
|
27 | assert.ok(isInstanceOf(Array)([]));
|
28 | });
|
29 |
|
30 | it('returns false is value is not an instance of given "class"', function() {
|
31 | assert.ok(isInstanceOf(CLAZZ, {}) === false);
|
32 | assert.ok(isInstanceOf(CLAZZ)({}) === false);
|
33 | });
|
34 | });
|