mirror of
https://github.com/gosticks/DefinitelyTyped.git
synced 2025-10-16 12:05:41 +00:00
* [cookies] Added breaking test for Cookies.set * [cookies] Fix Cookies.set sig for omitting `value` When omitting the `value` parameter the signature assumes you have omitted the `opts` parameter and causes an error because the types don't match
68 lines
1.8 KiB
TypeScript
68 lines
1.8 KiB
TypeScript
import Cookies = require('cookies');
|
|
import * as http from 'http';
|
|
import Keygrip = require('keygrip');
|
|
import express = require('express');
|
|
import connect = require('connect');
|
|
|
|
const server = http.createServer((req, res) => {
|
|
const cookies = new Cookies(req, res);
|
|
new Cookies(req, res, {keys: []});
|
|
new Cookies(req, res, {keys: new Keygrip([])});
|
|
new Cookies(req, res, {secure: true});
|
|
|
|
let unsigned: string | undefined;
|
|
let signed: string | undefined;
|
|
let tampered: string | undefined;
|
|
|
|
if (req.url === "/set") {
|
|
cookies
|
|
// set a regular cookie
|
|
.set("unsigned", "foo", { httpOnly: false })
|
|
|
|
// set a signed cookie
|
|
.set("signed", "bar", { signed: true })
|
|
|
|
// mimic a signed cookie, but with a bogus signature
|
|
.set("tampered", "baz")
|
|
.set("tampered.sig", "bogus")
|
|
|
|
// delete cookie but pass options
|
|
.set("removed", { signed: true })
|
|
|
|
// sameSite option
|
|
.set("samesite", "same", {sameSite: 'lax'})
|
|
.set("samesite", "same", {sameSite: 'strict'})
|
|
.set("samesite", "same", {sameSite: false});
|
|
|
|
res.writeHead(302, { Location: "/" });
|
|
res.end("Now let's check.");
|
|
return;
|
|
}
|
|
|
|
unsigned = cookies.get("unsigned");
|
|
signed = cookies.get("signed", { signed: true });
|
|
tampered = cookies.get("tampered", { signed: true });
|
|
|
|
res.writeHead(200, { "Content-Type": "text/plain" });
|
|
res.end(
|
|
`unsigned expected: foo
|
|
|
|
unsigned actual: ${unsigned}
|
|
|
|
signed expected: bar
|
|
|
|
signed actual: ${signed}
|
|
|
|
tampered expected: undefined
|
|
|
|
tampered: ${tampered}
|
|
|
|
`);
|
|
});
|
|
|
|
const eApp = express();
|
|
eApp.use(Cookies.express([]));
|
|
|
|
const cApp = connect();
|
|
cApp.use(Cookies.connect([]));
|