Files
2023-07-12 16:31:19 +01:00

57 lines
1.3 KiB
JavaScript
Executable File

var assert = require("assert");
var promise = require("../promise");
exports.testResolved = function (){
return promise.spawn(function* (){
yield promise.delay(100);
// can yield non-promise values
var foo = yield 'foo';
assert.ok(foo === 'foo');
var result = yield promise.delay(50).then(function () {
return foo;
});
var error = new Error('Boom!');
var start = new Date();
try {
yield promise.delay(100).then(function () {
throw error;
});
// Should never come here
assert.ok(true === false);
}
catch (e) {
assert.ok(e === error);
assert.ok(new Date() - start >= 100);
}
return result;
}).then(function (value) {
assert.ok(value === 'foo');
return true;
}, function (e) {
// Should never come here
assert.ok(true === false);
});
};
exports.testRejected = function (){
var error = new Error('Boom!');
return promise.spawn(function* (){
var start = new Date();
yield promise.delay(100).then(function () {
assert.ok(new Date() - start >= 100);
throw error;
});
// Should never come here
assert.ok(true === false);
}).then(function () {
// Should never come here
assert.ok(true === false);
}, function (e) {
assert.ok(e === error);
return true;
});
};
if (require.main === module)
require("patr/runner").run(exports);