| Server IP : 68.183.124.220 / Your IP : 216.73.217.137 Web Server : Apache/2.4.18 (Ubuntu) System : Linux Sandbox-A 4.4.0-210-generic #242-Ubuntu SMP Fri Apr 16 09:57:56 UTC 2021 x86_64 User : gavin ( 1000) PHP Version : 7.0.33-0ubuntu0.16.04.16 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority, MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /home/gavin/workspace/happymandarin/node_modules/promise.pipe/ |
Upload File : |
var test = require('blue-tape')
var pipe = require('./')
function adder (n) {
return new Promise(function (resolve, reject) {
resolve(n + 1)
})
}
function addAsync (n) {
return new Promise(function (resolve) {
setTimeout(function () {
return resolve(adder(n))
}, 500)
})
}
test('should chain a single promise', function (t) {
var addOne = pipe(adder)
t.ok(addOne)
return addOne(0).then(function (result) {
t.equal(result, 1)
})
})
test('should chain multiple promises', function (t) {
var addThree = pipe(adder, adder, adder)
t.ok(addThree)
return addThree(0).then(function (result) {
t.equal(result, 3)
})
})
test('it should persist context', function (t) {
var math = { addThree: pipe(adder, adder, adder, setIdentity) }
function setIdentity (val) {
this.identitiy = val
}
t.ok(math.addThree)
return math.addThree(0).then(function (result) {
t.ok(math.identitiy)
t.equals(math.identitiy, 3)
})
})
test('it should chain IO', function (t) {
var addThreeAsync = pipe(addAsync, addAsync, addAsync)
t.ok(addThreeAsync)
return addThreeAsync(0).then(function (result) {
t.equal(result, 3)
})
})
test('it should persist context with IO', function (t) {
var math = { addThree: pipe(addAsync, addAsync, addAsync, setIdentity) }
function setIdentity (val) {
this.identitiy = val
}
t.ok(math.addThree)
return math.addThree(0).then(function (result) {
t.ok(math.identitiy)
t.equals(math.identitiy, 3)
})
})
test('it should accept an array of promises', function (t) {
var addThreeAsync = pipe([addAsync, addAsync, addAsync])
t.ok(addThreeAsync)
return addThreeAsync(0).then(function (result) {
t.equal(result, 3)
})
})
test('it should fail with 0 arguments', function (t) {
try { pipe() } catch (err) {
t.ok(err)
t.end()
}
})