Skip to content

Commit

Permalink
fastify#57 - Moved tests over to use fastify inject
Browse files Browse the repository at this point in the history
  • Loading branch information
Svjard committed Jan 6, 2020
1 parent c22bad0 commit 558799a
Show file tree
Hide file tree
Showing 2 changed files with 83 additions and 82 deletions.
1 change: 0 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,6 @@
"@types/node": "^12.0.6",
"fastify": "^2.0.0",
"pre-commit": "^1.2.2",
"request": "^2.83.0",
"snazzy": "^8.0.0",
"standard": "^14.0.2",
"tap": "^12.6.6",
Expand Down
164 changes: 83 additions & 81 deletions test/cookie.test.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@

'use strict'

const tap = require('tap')
Expand All @@ -8,6 +7,38 @@ const request = require('request')
const cookieSignature = require('cookie-signature')
const plugin = require('../')

function parseCookies (cookies) {
if (!cookies) return []

var list = []
const cookiesList = Array.isArray(cookies) ? cookies : [cookies]
cookiesList.forEach(c => {
const parts = c.split(';')
const keyvalue = parts[0].split('=')
const path = parts.length > 1 ? parts[1].trim().split('=') : null
const expiration = parts.length > 2 ? parts[2].trim().split('=') : null
const breakout = {
key: decodeURIComponent(keyvalue[0]),
value: decodeURIComponent(keyvalue[1]),
}

if (path) {
breakout.path = path[1]
}

if (expiration) {
breakout.expires = expiration[1]
}

// do not return expired cookies, similiar to cookie jar parsers
if (!breakout.expires || new Date(breakout.expires) > new Date()) {
list.push(breakout)
}
})

return list
}

test('cookies get set correctly', (t) => {
t.plan(7)
const fastify = Fastify()
Expand All @@ -23,19 +54,15 @@ test('cookies get set correctly', (t) => {
if (err) tap.error(err)
fastify.server.unref()

const reqOpts = {
fastify.inject({
method: 'GET',
baseUrl: 'http://localhost:' + fastify.server.address().port
}
const req = request.defaults(reqOpts)

const jar = request.jar()
req({ uri: '/test1', jar }, (err, response, body) => {
url: '/test1'
}, (err, res) => {
t.error(err)
t.strictEqual(response.statusCode, 200)
t.deepEqual(JSON.parse(body), { hello: 'world' })
t.strictEqual(res.statusCode, 200)
t.deepEqual(JSON.parse(res.body), { hello: 'world' })

const cookies = jar.getCookies(reqOpts.baseUrl + '/test1')
const cookies = parseCookies(res.headers['set-cookie'])
t.is(cookies.length, 1)
t.is(cookies[0].key, 'foo')
t.is(cookies[0].value, 'foo')
Expand All @@ -61,19 +88,15 @@ test('should set multiple cookies', (t) => {
if (err) tap.error(err)
fastify.server.unref()

const reqOpts = {
fastify.inject({
method: 'GET',
baseUrl: 'http://localhost:' + fastify.server.address().port
}
const req = request.defaults(reqOpts)

const jar = request.jar()
req({ uri: '/', jar }, (err, response, body) => {
url: '/'
}, (err, res) => {
t.error(err)
t.strictEqual(response.statusCode, 200)
t.deepEqual(JSON.parse(body), { hello: 'world' })
t.strictEqual(res.statusCode, 200)
t.deepEqual(JSON.parse(res.body), { hello: 'world' })

const cookies = jar.getCookies(reqOpts.baseUrl + '/')
const cookies = parseCookies(res.headers['set-cookie'])
t.is(cookies.length, 3)
t.is(cookies[0].key, 'foo')
t.is(cookies[0].value, 'foo')
Expand All @@ -100,19 +123,15 @@ test('cookies get set correctly with millisecond dates', (t) => {
if (err) tap.error(err)
fastify.server.unref()

const reqOpts = {
fastify.inject({
method: 'GET',
baseUrl: 'http://localhost:' + fastify.server.address().port
}
const req = request.defaults(reqOpts)

const jar = request.jar()
req({ uri: '/test1', jar }, (err, response, body) => {
url: '/test1'
}, (err, res) => {
t.error(err)
t.strictEqual(response.statusCode, 200)
t.deepEqual(JSON.parse(body), { hello: 'world' })
t.strictEqual(res.statusCode, 200)
t.deepEqual(JSON.parse(res.body), { hello: 'world' })

const cookies = jar.getCookies(reqOpts.baseUrl + '/test1')
const cookies = parseCookies(res.headers['set-cookie'])
t.is(cookies.length, 1)
t.is(cookies[0].key, 'foo')
t.is(cookies[0].value, 'foo')
Expand Down Expand Up @@ -149,19 +168,16 @@ test('parses incoming cookies', (t) => {
if (err) tap.error(err)
fastify.server.unref()

const reqOpts = {
fastify.inject({
method: 'GET',
baseUrl: 'http://localhost:' + fastify.server.address().port
}
const req = request.defaults(reqOpts)

const headers = {
cookie: 'bar=bar'
}
req({ uri: '/test2', headers }, (err, response, body) => {
url: '/test2',
headers: {
cookie: 'bar=bar'
}
}, (err, res) => {
t.error(err)
t.strictEqual(response.statusCode, 200)
t.deepEqual(JSON.parse(body), { hello: 'world' })
t.strictEqual(res.statusCode, 200)
t.deepEqual(JSON.parse(res.body), { hello: 'world' })
})
})
})
Expand All @@ -186,16 +202,12 @@ test('does not modify supplied cookie options object', (t) => {
if (err) tap.error(err)
fastify.server.unref()

const reqOpts = {
fastify.inject({
method: 'GET',
baseUrl: 'http://localhost:' + fastify.server.address().port
}
const req = request.defaults(reqOpts)

const jar = request.jar()
req({ uri: '/test1', jar }, (err, response, body) => {
url: '/test1'
}, (err, res) => {
t.error(err)
t.strictEqual(response.statusCode, 200)
t.strictEqual(res.statusCode, 200)
t.strictDeepEqual(cookieOptions, {
path: '/',
expires: expireDate
Expand All @@ -219,19 +231,15 @@ test('cookies gets cleared correctly', (t) => {
if (err) tap.error(err)
fastify.server.unref()

const reqOpts = {
fastify.inject({
method: 'GET',
baseUrl: 'http://localhost:' + fastify.server.address().port
}
const req = request.defaults(reqOpts)

const jar = request.jar()
req({ uri: '/test1', jar }, (err, response, body) => {
url: '/test1'
}, (err, res) => {
t.error(err)
t.strictEqual(response.statusCode, 200)
t.deepEqual(JSON.parse(body), { hello: 'world' })
t.strictEqual(res.statusCode, 200)
t.deepEqual(JSON.parse(res.body), { hello: 'world' })

const cookies = jar.getCookies(reqOpts.baseUrl + '/test1')
const cookies = parseCookies(res.headers['set-cookie'])
t.is(cookies.length, 0)
})
})
Expand All @@ -253,19 +261,15 @@ test('cookies signature', (t) => {
if (err) tap.error(err)
fastify.server.unref()

const reqOpts = {
fastify.inject({
method: 'GET',
baseUrl: 'http://localhost:' + fastify.server.address().port
}
const req = request.defaults(reqOpts)

const jar = request.jar()
req({ uri: '/test1', jar }, (err, response, body) => {
url: '/test1'
}, (err, res) => {
t.error(err)
t.strictEqual(response.statusCode, 200)
t.deepEqual(JSON.parse(body), { hello: 'world' })
t.strictEqual(res.statusCode, 200)
t.deepEqual(JSON.parse(res.body), { hello: 'world' })

const cookies = jar.getCookies(reqOpts.baseUrl + '/test1')
const cookies = parseCookies(res.headers['set-cookie'])
t.is(cookies.length, 1)
t.is(cookies[0].key, 'foo')
t.is(cookieSignature.unsign(cookies[0].value, secret), 'foo')
Expand Down Expand Up @@ -293,18 +297,16 @@ test('pass options to `cookies.parse`', (t) => {
if (err) tap.error(err)
fastify.server.unref()

const reqOpts = {
fastify.inject({
method: 'GET',
baseUrl: 'http://localhost:' + fastify.server.address().port
}
const req = request.defaults(reqOpts)
const headers = {
cookie: 'foo=bar'
}
req({ uri: '/test1', headers }, (err, response, body) => {
url: '/test1',
headers: {
cookie: 'foo=bar'
}
}, (err, res) => {
t.error(err)
t.strictEqual(response.statusCode, 200)
t.deepEqual(JSON.parse(body), { hello: 'world' })
t.strictEqual(res.statusCode, 200)
t.deepEqual(JSON.parse(res.body), { hello: 'world' })
})
})

Expand Down Expand Up @@ -340,4 +342,4 @@ test('issue 53', (t) => {
t.error(err)
t.is(response.body, 'done')
})
})
})

0 comments on commit 558799a

Please sign in to comment.