Fix handling errors from setting cookie

This commit is contained in:
Douglas Christopher Wilson
2024-01-28 14:44:24 -05:00
parent f9f2318615
commit d9354ef09f
3 changed files with 23 additions and 1 deletions
+1
View File
@@ -2,6 +2,7 @@ unreleased
==========
* Add `priority` to `cookie` options
* Fix handling errors from setting cookie
* Support any type in `secret` that `crypto.createHmac` supports
* deps: cookie@0.5.0
- Fix `expires` option to reject invalid dates
+5 -1
View File
@@ -240,7 +240,11 @@ function session(options) {
}
// set cookie
setcookie(res, name, req.sessionID, secrets[0], req.session.cookie.data);
try {
setcookie(res, name, req.sessionID, secrets[0], req.session.cookie.data)
} catch (err) {
defer(next, err)
}
});
// proxy end() to commit the session
+17
View File
@@ -1945,6 +1945,23 @@ describe('session()', function(){
.expect(200, done)
})
it('should forward errors setting cookie', function (done) {
var cb = after(2, done)
var server = createServer({ cookie: { expires: new Date(NaN) } }, function (req, res) {
res.end()
})
server.on('error', function onerror (err) {
assert.ok(err)
assert.strictEqual(err.message, 'option expires is invalid')
cb()
})
request(server)
.get('/admin')
.expect(200, cb)
})
it('should preserve cookies set before writeHead is called', function(done){
var server = createServer(null, function (req, res) {
var cookie = new Cookie()