You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
61 lines
1.5 KiB
61 lines
1.5 KiB
3 years ago
|
var tap = require("tap");
|
||
|
var ResourceRequest = require("../lib/ResourceRequest");
|
||
|
|
||
|
tap.test("can be created", function(t) {
|
||
|
var create = function() {
|
||
|
var request = new ResourceRequest(undefined, Promise); // eslint-disable-line no-unused-vars
|
||
|
};
|
||
|
t.doesNotThrow(create);
|
||
|
t.end();
|
||
|
});
|
||
|
|
||
|
tap.test("times out when created with a ttl", function(t) {
|
||
|
var reject = function(err) {
|
||
|
t.match(err, /ResourceRequest timed out/);
|
||
|
t.end();
|
||
|
};
|
||
|
var resolve = function(r) {
|
||
|
t.fail("should not resolve");
|
||
|
};
|
||
|
var request = new ResourceRequest(10, Promise); // eslint-disable-line no-unused-vars
|
||
|
|
||
|
request.promise.then(resolve, reject);
|
||
|
});
|
||
|
|
||
|
tap.test("calls resolve when resolved", function(t) {
|
||
|
var resource = {};
|
||
|
var resolve = function(r) {
|
||
|
t.equal(r, resource);
|
||
|
t.end();
|
||
|
};
|
||
|
var reject = function(err) {
|
||
|
t.error(err);
|
||
|
};
|
||
|
var request = new ResourceRequest(undefined, Promise);
|
||
|
request.promise.then(resolve, reject);
|
||
|
request.resolve(resource);
|
||
|
});
|
||
|
|
||
|
tap.test("removeTimeout removes the timeout", function(t) {
|
||
|
var reject = function(err) {
|
||
|
t.error(err);
|
||
|
};
|
||
|
var request = new ResourceRequest(10, Promise);
|
||
|
request.promise.then(undefined, reject);
|
||
|
request.removeTimeout();
|
||
|
setTimeout(function() {
|
||
|
t.end();
|
||
|
}, 20);
|
||
|
});
|
||
|
|
||
|
tap.test("does nothing if resolved more than once", function(t) {
|
||
|
var request = new ResourceRequest(undefined, Promise);
|
||
|
t.doesNotThrow(function() {
|
||
|
request.resolve({});
|
||
|
});
|
||
|
t.doesNotThrow(function() {
|
||
|
request.resolve({});
|
||
|
});
|
||
|
t.end();
|
||
|
});
|