2016-11-29 02:27:20 +01:00
|
|
|
const assert = require('assert')
|
2018-05-21 14:59:26 +02:00
|
|
|
const nodeify = require('../../../app/scripts/lib/nodeify')
|
2016-11-29 02:27:20 +01:00
|
|
|
|
2017-05-04 23:35:10 +02:00
|
|
|
describe('nodeify', function () {
|
2016-11-29 02:27:20 +01:00
|
|
|
var obj = {
|
|
|
|
foo: 'bar',
|
|
|
|
promiseFunc: function (a) {
|
|
|
|
var solution = this.foo + a
|
|
|
|
return Promise.resolve(solution)
|
2017-05-04 23:35:10 +02:00
|
|
|
},
|
2016-11-29 02:27:20 +01:00
|
|
|
}
|
|
|
|
|
2017-05-04 23:35:10 +02:00
|
|
|
it('should retain original context', function (done) {
|
2017-07-13 00:10:52 +02:00
|
|
|
var nodified = nodeify(obj.promiseFunc, obj)
|
2016-11-29 02:27:20 +01:00
|
|
|
nodified('baz', function (err, res) {
|
2018-07-03 02:21:27 +02:00
|
|
|
if (!err) {
|
|
|
|
assert.equal(res, 'barbaz')
|
|
|
|
done()
|
|
|
|
} else {
|
|
|
|
done(new Error(err.toString()))
|
|
|
|
}
|
2016-11-29 02:27:20 +01:00
|
|
|
})
|
|
|
|
})
|
2017-08-04 04:10:33 +02:00
|
|
|
|
2017-10-06 22:16:44 +02:00
|
|
|
it('should allow the last argument to not be a function', function (done) {
|
2017-08-04 05:52:09 +02:00
|
|
|
const nodified = nodeify(obj.promiseFunc, obj)
|
2017-08-04 04:10:33 +02:00
|
|
|
try {
|
|
|
|
nodified('baz')
|
2017-08-04 05:52:09 +02:00
|
|
|
done()
|
2017-10-06 22:16:44 +02:00
|
|
|
} catch (err) {
|
|
|
|
done(new Error('should not have thrown if the last argument is not a function'))
|
2017-08-04 04:10:33 +02:00
|
|
|
}
|
|
|
|
})
|
2016-11-29 02:27:20 +01:00
|
|
|
})
|