forked from DefinitelyTyped/DefinitelyTyped
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcookies-tests.ts
42 lines (34 loc) · 1.23 KB
/
cookies-tests.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
/// <reference path="../node/node.d.ts" />
/// <reference path="cookies.d.ts" />
import * as Cookies from 'cookies';
import * as http from 'http';
const server = http.createServer((req, res) => {
const cookies = new Cookies(req, res);
let unsigned: string,
signed: string,
tampered: string
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")
res.writeHead(302, { "Location": "/" })
return res.end("Now let's check.")
}
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\n\n" +
"unsigned actual: " + unsigned + "\n\n" +
"signed expected: bar\n\n" +
"signed actual: " + signed + "\n\n" +
"tampered expected: undefined\n\n" +
"tampered: " + tampered + "\n\n"
)
})