mirror of
https://github.com/kremalicious/metamask-extension.git
synced 2024-11-23 10:30:04 +01:00
f47cfbbb3e
The `assert` module has two modes: "Legacy" and "strict". When using strict mode, the "strict" version of each assertion method is implied. Whereas in legacy mode, by default it will use the deprecated, "loose" version of each assertion. We now use strict mode everywhere. A few tests required updates where they were asserting the wrong thing, and it was passing beforehand due to the loose matching.
75 lines
1.9 KiB
JavaScript
75 lines
1.9 KiB
JavaScript
import { strict as assert } from 'assert';
|
|
import nodeify from './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}`));
|
|
}
|
|
});
|
|
});
|