UNPKG

1.17 kBJavaScriptView Raw
1'use strict';
2
3var isInstanceOf = require('../src/instanceOf'),
4 assert = require('chai').assert;
5
6describe('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});