mirror of
https://gitlab.silvrtree.co.uk/martind2000/frontexpress.git
synced 2025-02-10 17:39:15 +00:00
forgot a feature: must call middleware function when request fails
This commit is contained in:
parent
1f46666619
commit
1655e52436
@ -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) {
|
||||
|
@ -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();
|
||||
|
Loading…
Reference in New Issue
Block a user