From 29376fb522e6d6921424da8bd33bc3df50968b89 Mon Sep 17 00:00:00 2001 From: Joe Wagner Date: Tue, 27 May 2014 16:04:00 -0600 Subject: [PATCH] Fix parsing logic around resave option --- index.js | 2 +- test/session.js | 29 +++++++++++++++++++++++++++++ 2 files changed, 30 insertions(+), 1 deletion(-) diff --git a/index.js b/index.js index abfe723d..5e9434bc 100644 --- a/index.js +++ b/index.js @@ -73,7 +73,7 @@ function session(options){ , rollingSessions = options.rolling || false; // TODO: switch default to false on next major - var resaveSession = options.resave === undefined + var resaveSession = (options.resave === undefined || options.resave) ? true : false; diff --git a/test/session.js b/test/session.js index bfdda072..11b2692e 100644 --- a/test/session.js +++ b/test/session.js @@ -114,6 +114,35 @@ describe('session()', function(){ }) describe('resave option', function(){ + it('should allow setting to true', function(done){ + var count = 0; + var app = express(); + app.use(cookieParser()); + app.use(session({ resave: true, secret: 'keyboard cat', cookie: { maxAge: min }})); + app.use(function(req, res, next){ + var save = req.session.save; + res.setHeader('x-count', count); + req.session.user = 'bob'; + req.session.save = function(fn){ + res.setHeader('x-count', ++count); + return save.call(this, fn); + }; + res.end(); + }); + + request(app) + .get('/') + .expect('x-count', '1') + .expect(200, function(err, res){ + if (err) return done(err); + request(app) + .get('/') + .set('Cookie', 'connect.sid=' + sid(res)) + .expect('x-count', '2') + .expect(200, done); + }); + }); + it('should default to true', function(done){ var count = 0; var app = express();