-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtest.js
83 lines (68 loc) · 2.31 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
73
74
75
76
77
78
79
80
81
82
83
/*!
* is-hybrid <https://github.com/hybridables/is-hybrid>
*
* Copyright (c) 2015 Charlike Mike Reagent, contributors.
* Released under the MIT license.
*/
/* jshint asi:true */
'use strict'
var test = require('assertit')
var isHybrid = require('./index')
var gotHybrid = require('then-got')
var gotPromise = require('got-promise')
var TEST_URL = 'http://www.tunnckocore.tk'
test('is-hybrid:', function () {
test('should return true for hybrids', function (done) {
var hybrid = gotHybrid(TEST_URL)
test.equal(typeof gotHybrid.hybridify, 'function')
test.equal(typeof hybrid.hybridify, 'function')
test.equal(isHybrid(gotHybrid), false)
test.equal(isHybrid(hybrid), true)
done()
})
test('should return false for promises', function (done) {
var promise = gotPromise(TEST_URL)
test.ok(!promise.hybridify)
test.ok(!gotPromise.hybridify)
test.equal(typeof promise.hybridify, 'undefined')
test.equal(typeof gotPromise.hybridify, 'undefined')
test.equal(isHybrid(promise), false)
test.equal(isHybrid(gotPromise), false)
done()
})
test('should return false for non-hybrids', function () {
test.equal(isHybrid(null), false)
test.equal(isHybrid('foo'), false)
test.equal(isHybrid(123), false)
test.equal(isHybrid({foo: 'bar'}), false)
test.equal(isHybrid([1, 2, 3, 4]), false)
test.equal(isHybrid(undefined), false)
test.equal(isHybrid(Object), false)
test.equal(isHybrid(Function), false)
test.equal(isHybrid(function () {}), false)
})
test('should return false for fake hybrids', function (done) {
function fakeHybrid () {
function fakefn () {}
fakefn.hybridify = function _fakeHybridify_ () {}
return fakefn
}
fakeHybrid.hybridify = function fakeHybridify () {}
test.equal(isHybrid(fakeHybrid), false)
test.equal(isHybrid(fakeHybrid()), false)
test.equal(typeof fakeHybrid.hybridify, 'function')
test.equal(typeof fakeHybrid().hybridify, 'function')
done()
})
test('should return false when .hybridify not a function', function (done) {
function fakeHybrid () {
function fakefn () {}
fakefn.hybridify = true
return fakefn
}
fakeHybrid.hybridify = false
test.equal(isHybrid(fakeHybrid), false)
test.equal(isHybrid(fakeHybrid()), false)
done()
})
})