mirror of
https://gitlab.silvrtree.co.uk/martind2000/frontexpress.git
synced 2025-02-11 09:59:16 +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) {
|
for (const route of currentRoutes) {
|
||||||
if (route.middleware.failed) {
|
if (route.middleware.failed) {
|
||||||
route.middleware.failed(request, response);
|
route.middleware.failed(request, response);
|
||||||
|
} else {
|
||||||
|
route.middleware(request, response);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (reject) {
|
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) => {
|
it('middleware as object on path /', (done) => {
|
||||||
const middleware = new frontexpress.Middleware('on path /');
|
const middleware = new frontexpress.Middleware('on path /');
|
||||||
const spy = sinon.spy(middleware, 'updated');
|
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) => {
|
it('router on path /', (done) => {
|
||||||
const spy = sinon.spy();
|
const spy = sinon.spy();
|
||||||
const router = new frontexpress.Router();
|
const router = new frontexpress.Router();
|
||||||
|
Loading…
Reference in New Issue
Block a user