forgot a feature: must call middleware function when request fails

This commit is contained in:
Camel Aissani 2016-06-28 14:15:11 +02:00
parent 1f46666619
commit 1655e52436
2 changed files with 47 additions and 0 deletions

View File

@ -104,6 +104,8 @@ export default class Application {
for (const route of currentRoutes) {
if (route.middleware.failed) {
route.middleware.failed(request, response);
} else {
route.middleware(request, response);
}
}
if (reject) {

View File

@ -105,6 +105,28 @@ describe('Application', () => {
});
});
it('middleware as function on path / request fails', (done) => {
requester = new Requester();
sinon.stub(requester, 'fetch', ({uri, method, headers, data}, resolve, reject) => {
reject(
{uri, method, headers, data},
{status: 401, statusText: 'not logged'}
);
});
const spy = sinon.spy();
const app = frontexpress();
app.set('http-requester', requester);
app.use((request, response) => {spy()});
app.httpGet('/', null, (request, response) => {
assert(spy.callCount === 1);
assert(response.status === 401);
done();
});
});
it('middleware as object on path /', (done) => {
const middleware = new frontexpress.Middleware('on path /');
const spy = sinon.spy(middleware, 'updated');
@ -141,6 +163,29 @@ describe('Application', () => {
});
});
it('middleware as object on path / request fails', (done) => {
requester = new Requester();
sinon.stub(requester, 'fetch', ({uri, method, headers, data}, resolve, reject) => {
reject(
{uri, method, headers, data},
{status: 401, statusText: 'not logged'}
);
});
const middleware = new frontexpress.Middleware('on path /');
const spy = sinon.spy(middleware, 'failed');
const app = frontexpress();
app.set('http-requester', requester);
app.use(middleware);
app.httpGet('/', null, (request, response) => {
assert(spy.callCount === 1);
assert(response.status === 401);
done();
});
});
it('router on path /', (done) => {
const spy = sinon.spy();
const router = new frontexpress.Router();