1
0
mirror of https://github.com/kremalicious/metamask-extension.git synced 2024-11-30 08:09:15 +01:00
metamask-extension/test/unit/app/nodeify-test.js
Whymarrh Whitby b6ccd22d6c
Update ESLint shared config to v3 (#9274)
Co-authored-by: Mark Stacey <markjstacey@gmail.com>
2020-08-19 13:57:05 -02:30

71 lines
1.8 KiB
JavaScript

import assert from 'assert'
import nodeify from '../../../app/scripts/lib/nodeify'
describe('nodeify', function () {
const obj = {
foo: 'bar',
promiseFunc (a) {
const solution = this.foo + a
return Promise.resolve(solution)
},
}
it('should retain original context', function (done) {
const nodified = nodeify(obj.promiseFunc, obj)
nodified('baz', (err, res) => {
if (!err) {
assert.equal(res, 'barbaz')
done()
return
}
done(new Error(err.toString()))
})
})
it('no callback - should allow the last argument to not be a function', function (done) {
const nodified = nodeify(obj.promiseFunc, obj)
try {
nodified('baz')
done()
} catch (err) {
done(new Error('should not have thrown if the last argument is not a function'))
}
})
it('sync functions - returns value', function (done) {
const nodified = nodeify(() => 42)
try {
nodified((err, result) => {
if (err) {
done(new Error(`should not have thrown any error: ${err.message}`))
return
}
assert.equal(42, result, 'got expected result')
})
done()
} catch (err) {
done(new Error(`should not have thrown any error: ${err.message}`))
}
})
it('sync functions - handles errors', function (done) {
const nodified = nodeify(() => {
throw new Error('boom!')
})
try {
nodified((err, result) => {
if (result) {
done(new Error('should not have returned any result'))
return
}
assert.ok(err, 'got expected error')
assert.ok(err.message.includes('boom!'), 'got expected error message')
})
done()
} catch (err) {
done(new Error(`should not have thrown any error: ${err.message}`))
}
})
})