Adding a delay fluent method

This commit is contained in:
Bryce Gibson
2014-03-21 08:23:29 +11:00
parent c9f1b40d88
commit 27013bb761
2 changed files with 94 additions and 0 deletions

View File

@@ -53,6 +53,11 @@ function FluentInterface(server, o) {
put: forMethod('put', route, top || route),
post: forMethod('post', route, top || route),
delete: forMethod('delete', route, top || route)
},
delay: function(delay) {
debug('Replacing delay for', url, 'with', delay);
route.response.delay = delay;
return this;
}
};
};

View File

@@ -340,6 +340,50 @@ describe('Interfake JavaScript API', function () {
done();
});
});
describe('#delay', function() {
it('should create one GET endpoint with a particular body, status and delay', function (done) {
var interfake = new Interfake();
var enoughTimeHasPassed = false;
var _this = this;
this.slow(500)
interfake.get('/fluent').body({ fluency : 'isgreat' }).status(300).delay(200);
interfake.listen(3000);
setTimeout(function() {
enoughTimeHasPassed = true;
}, 199)
request({ url : 'http://localhost:3000/fluent', json : true }, function (error, response, body) {
assert.equal(response.statusCode, 300);
assert.equal(body.fluency, 'isgreat');
interfake.stop();
if(!enoughTimeHasPassed) {
throw new Error('Response wasn\'t delay for long enough');
}
done();
});
});
});
});
});
describe('#delay', function() {
it('should create one GET endpoint with a particular delay', function (done) {
var interfake = new Interfake();
var enoughTimeHasPassed = false;
var _this = this;
this.slow(500)
interfake.get('/fluent').delay(200);
interfake.listen(3000);
setTimeout(function() {
enoughTimeHasPassed = true;
}, 199)
request({ url : 'http://localhost:3000/fluent', json : true }, function (error, response, body) {
interfake.stop();
if(!enoughTimeHasPassed) {
throw new Error('Response wasn\'t delay for long enough');
}
done();
});
});
});
});
@@ -398,6 +442,51 @@ describe('Interfake JavaScript API', function () {
done();
});
});
describe('#delay', function() {
it('should create one POST endpoint with a particular body, status and delay', function (done) {
var interfake = new Interfake();
var enoughTimeHasPassed = false;
var _this = this;
this.slow(500)
interfake.post('/fluent').body({ fluency : 'isgreat' }).status(300).delay(200);
interfake.listen(3000);
setTimeout(function() {
enoughTimeHasPassed = true;
}, 199)
request.post({ url : 'http://localhost:3000/fluent', json : true }, function (error, response, body) {
assert.equal(response.statusCode, 300);
assert.equal(body.fluency, 'isgreat');
interfake.stop();
if(!enoughTimeHasPassed) {
throw new Error('Response wasn\'t delay for long enough');
}
done();
});
});
});
});
});
describe('#delay', function() {
it('should create one POST endpoint with a particular delay', function (done) {
var interfake = new Interfake();
var enoughTimeHasPassed = false;
var _this = this;
this.slow(500)
interfake.post('/fluent').delay(200);
interfake.listen(3000);
setTimeout(function() {
enoughTimeHasPassed = true;
}, 199)
request.post({ url : 'http://localhost:3000/fluent', json : true }, function (error, response, body) {
interfake.stop();
if(!enoughTimeHasPassed) {
throw new Error('Response wasn\'t delay for long enough');
}
done();
});
});
});