Skip to content

Commit fb8a221

Browse files
Add some simple tests
Co-authored-by: Nick Colley <[email protected]>
1 parent 399dd8e commit fb8a221

File tree

2 files changed

+79
-1
lines changed

2 files changed

+79
-1
lines changed

__tests__/spec/data-storage.js

+76
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
/* eslint-env jest */
2+
const request = require('supertest')
3+
const app = require('../../server.js')
4+
const path = require('path')
5+
const fs = require('fs')
6+
const utils = require('../../lib/utils.js')
7+
8+
jest.setTimeout(30000)
9+
10+
function readFile (pathFromRoot) {
11+
return fs.readFileSync(path.join(__dirname, '../../' + pathFromRoot), 'utf8')
12+
}
13+
/**
14+
*
15+
*/
16+
describe('The data storage', () => {
17+
// check session-data defaults file exists
18+
19+
it.skip('file should exist', (done) => {
20+
const sessionDataDefaultsFile = readFile('app/data/session-data-defaults.js')
21+
22+
request(app)
23+
.get(sessionDataDefaultsFile)
24+
.expect('Content-Type', /application\/javascript; charset=UTF-8/)
25+
// .expect(200)
26+
.end(function (err, res) {
27+
if (err) {
28+
done(err)
29+
} else {
30+
done()
31+
}
32+
})
33+
})
34+
35+
describe('storeData function', () => {
36+
it('should add input data into session data', async () => {
37+
let initialSessionData = {
38+
'driver-name': 'Dr Emmett Brown'
39+
}
40+
41+
const inputData = {
42+
'vehicle-registration': 'OUTATIME'
43+
}
44+
45+
utils.storeData(inputData, initialSessionData)
46+
47+
expect(initialSessionData).toEqual({
48+
'driver-name': 'Dr Emmett Brown',
49+
'vehicle-registration': 'OUTATIME'
50+
})
51+
})
52+
53+
it('should merge object into object', async () => {
54+
let initialSessionData = {
55+
vehicle: {
56+
'driver-name': 'Dr Emmett Brown'
57+
}
58+
}
59+
60+
const inputData = {
61+
vehicle: {
62+
registration: 'OUTATIME'
63+
}
64+
}
65+
66+
utils.storeData(inputData, initialSessionData)
67+
68+
expect(initialSessionData).toEqual({
69+
vehicle: {
70+
'driver-name': 'Dr Emmett Brown',
71+
registration: 'OUTATIME'
72+
}
73+
})
74+
})
75+
})
76+
})

lib/utils.js

+3-1
Original file line numberDiff line numberDiff line change
@@ -220,7 +220,7 @@ exports.matchMdRoutes = function (req, res) {
220220
}
221221

222222
// Store data from POST body or GET query in session
223-
var storeData = function (input, data) {
223+
function storeData (input, data) {
224224
// Value we store to indicate unchecked checkboxes. See `auto-store-data.js`
225225
var uncheckedValue = '_unchecked'
226226

@@ -257,6 +257,8 @@ var storeData = function (input, data) {
257257
}
258258
}
259259

260+
exports.storeData = storeData
261+
260262
// Get session default data from file
261263
let sessionDataDefaults = {}
262264

0 commit comments

Comments
 (0)