47 lines
1.2 KiB
JavaScript
47 lines
1.2 KiB
JavaScript
|
var Promise = adapter;
|
||
|
var assert = require("assert");
|
||
|
|
||
|
describe("Github #417", function() {
|
||
|
|
||
|
specify("minimal repro", function() {
|
||
|
var promise = new Promise(function(resolve) {
|
||
|
resolve(Promise.resolve().then(function() {
|
||
|
return new Promise(function(resolve) {
|
||
|
setTimeout(resolve, 1);
|
||
|
});
|
||
|
}));
|
||
|
});
|
||
|
|
||
|
return promise.then(function() {
|
||
|
assert(promise.isResolved());
|
||
|
});
|
||
|
});
|
||
|
|
||
|
specify("original repro", function() {
|
||
|
var called = 0;
|
||
|
var bar = Promise.method(function() {
|
||
|
return Promise.bind(this)
|
||
|
.then(Promise.method(function() {
|
||
|
called++;
|
||
|
}));
|
||
|
});
|
||
|
|
||
|
var foo = Promise.method(function() {
|
||
|
return Promise.bind(this)
|
||
|
.then(Promise.method(function() {
|
||
|
return bar();
|
||
|
}))
|
||
|
.bind(this)
|
||
|
.lastly(Promise.method(function() {
|
||
|
called++;
|
||
|
}));
|
||
|
});
|
||
|
|
||
|
return foo().then(function() {
|
||
|
called++;
|
||
|
assert.equal(3, called);
|
||
|
});
|
||
|
});
|
||
|
});
|
||
|
|