/
test.js
72 lines (66 loc) · 2.29 KB
/
test.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
/*!
* is-real-object <https://github.com/tunnckoCore/is-real-object>
*
* Copyright (c) 2015-2016 Charlike Mike Reagent <@tunnckoCore> (http://www.tunnckocore.tk)
* Released under the MIT license.
*/
'use strict'
var test = require('assertit')
var isRealObject = require('./index')
function ok (val) {
return test.strictEqual(val, true)
}
function notOk (val) {
return test.strictEqual(val, false)
}
test('should return `true` when a value is an object', function (done) {
ok(isRealObject({}))
ok(isRealObject({foo: 'bar'}))
ok(isRealObject(function () {}))
ok(isRealObject(arguments))
ok(isRealObject(/foo/))
ok(isRealObject(new Error()))
ok(isRealObject(new TypeError()))
ok(isRealObject(new Boolean())) // eslint-disable-line no-new-wrappers
ok(isRealObject(new Number())) // eslint-disable-line no-new-wrappers
ok(isRealObject(new String())) // eslint-disable-line no-new-wrappers
ok(isRealObject(new Object())) // eslint-disable-line no-new-object
ok(isRealObject(new Date()))
ok(isRealObject(new RegExp()))
ok(isRealObject(new RegExp('foo')))
ok(isRealObject(new Function())) // eslint-disable-line no-new-func
ok(isRealObject(new Function('foo'))) // eslint-disable-line no-new-func
ok(isRealObject(Object.create(null)))
ok(isRealObject(Object.create({})))
ok(isRealObject(Object.create({a: 'b'})))
ok(isRealObject(Object(0)))
ok(isRealObject(Object(1)))
ok(isRealObject(Object(false)))
ok(isRealObject(Object(true)))
ok(isRealObject(Object('foo')))
done()
})
test('should return `false` when a value is not an object or is array', function (done) {
notOk(isRealObject(new Array())) // eslint-disable-line no-array-constructor
notOk(isRealObject(new Array(2)))
notOk(isRealObject(Number(123)))
notOk(isRealObject(String(123)))
notOk(isRealObject(Boolean(true)))
notOk(isRealObject(Boolean(false)))
notOk(isRealObject(Boolean('foo')))
notOk(isRealObject(String()))
notOk(isRealObject(String(123)))
notOk(isRealObject(String('foo')))
notOk(isRealObject([]))
notOk(isRealObject(['a']))
notOk(isRealObject('foo'))
notOk(isRealObject(null))
notOk(isRealObject(undefined))
notOk(isRealObject(NaN))
notOk(isRealObject(123))
notOk(isRealObject(0))
notOk(isRealObject(false))
notOk(isRealObject(true))
notOk(isRealObject())
done()
})