diff --git a/app.js b/app.js index 2c39c58..efffc5a 100644 --- a/app.js +++ b/app.js @@ -2,4 +2,15 @@ module.exports = function(app) { app.config.coreMiddleware.push('session'); + + // listen on session's events + app.on('session:missed', ({ ctx, key }) => { + ctx.coreLogger.warn('[session][missed] key(%s)', key); + }); + app.on('session:expired', ({ ctx, key, value }) => { + ctx.coreLogger.warn('[session][expired] key(%s) value(%j)', key, value); + }); + app.on('session:invalid', ({ ctx, key, value }) => { + ctx.coreLogger.warn('[session][invalid] key(%s) value(%j)', key, value); + }); }; diff --git a/package.json b/package.json index 97a3127..3e232e4 100644 --- a/package.json +++ b/package.json @@ -22,7 +22,7 @@ "cookie" ], "dependencies": { - "koa-session": "^5.5.0" + "koa-session": "^5.7.0" }, "devDependencies": { "autod": "^2.10.1", diff --git a/test/app/middleware/session.test.js b/test/app/middleware/session.test.js index cbaa2a1..1ee8203 100644 --- a/test/app/middleware/session.test.js +++ b/test/app/middleware/session.test.js @@ -74,6 +74,23 @@ describe('test/app/middlewares/session.test.js', () => { }); after(() => app.close()); + if (name === 'redis-session') { + it('should get with ', function* () { + yield agent + .get('/set?foo=bar') + .expect(200) + .expect({ foo: 'bar' }) + .expect('set-cookie', /EGG_SESS=.*?;/); + + mm.empty(app.redis, 'get'); + + yield agent + .get('/get') + .expect(200) + .expect({}); + }); + } + it('should get empty session and do not set cookie when session not populated', function* () { yield agent .get('/get')