diff --git a/__tests__/spec/data-storage.js b/__tests__/spec/data-storage.js new file mode 100644 index 0000000000..e140e385f2 --- /dev/null +++ b/__tests__/spec/data-storage.js @@ -0,0 +1,76 @@ +/* eslint-env jest */ +const request = require('supertest') +const app = require('../../server.js') +const path = require('path') +const fs = require('fs') +const utils = require('../../lib/utils.js') + +jest.setTimeout(30000) + +function readFile (pathFromRoot) { + return fs.readFileSync(path.join(__dirname, '../../' + pathFromRoot), 'utf8') +} +/** + * + */ +describe('The data storage', () => { + // check session-data defaults file exists + + it.skip('file should exist', (done) => { + const sessionDataDefaultsFile = readFile('app/data/session-data-defaults.js') + + request(app) + .get(sessionDataDefaultsFile) + .expect('Content-Type', /application\/javascript; charset=UTF-8/) + // .expect(200) + .end(function (err, res) { + if (err) { + done(err) + } else { + done() + } + }) + }) + + describe('storeData function', () => { + it('should add input data into session data', async () => { + let initialSessionData = { + 'driver-name': 'Dr Emmett Brown' + } + + const inputData = { + 'vehicle-registration': 'OUTATIME' + } + + utils.storeData(inputData, initialSessionData) + + expect(initialSessionData).toEqual({ + 'driver-name': 'Dr Emmett Brown', + 'vehicle-registration': 'OUTATIME' + }) + }) + + it('should merge object into object', async () => { + let initialSessionData = { + vehicle: { + 'driver-name': 'Dr Emmett Brown' + } + } + + const inputData = { + vehicle: { + registration: 'OUTATIME' + } + } + + utils.storeData(inputData, initialSessionData) + + expect(initialSessionData).toEqual({ + vehicle: { + 'driver-name': 'Dr Emmett Brown', + registration: 'OUTATIME' + } + }) + }) + }) +}) diff --git a/app/data/session-data-defaults.js b/app/data/session-data-defaults.js index 9e4921b0ab..3b5158abb9 100644 --- a/app/data/session-data-defaults.js +++ b/app/data/session-data-defaults.js @@ -16,9 +16,47 @@ Example usage: ============================================================================ */ - module.exports = { - - // Insert values here - + // Example as used in current docs + claimant: { + field1: 'Example 1', + field2: 'Example 2', + field3: 'Example 3' + }, + partner: { + field1: 'Example 1', + field2: 'Example 2', + field3: 'Example 3' + }, + myObject: { + // Array of objects within object + myArrayOfObjects: [ + { + name: 'test1', + address: 'test2' + }, + { + name: 'test3' + } + ], + // Simple array within object + mySimpleArray: [ + 'test4', + 'test5' + ], + // Multi-level array within object + myMultiLevelArray: [ + [ + ['test6', 'test7'], + 'test8' + ] + ] + }, + // Arrays within array + myArray: [ + [ + 'test9', + ['test10', 'test11'] + ] + ] } diff --git a/docs/views/examples/pass-data/test1.html b/docs/views/examples/pass-data/test1.html new file mode 100644 index 0000000000..ac507c3399 --- /dev/null +++ b/docs/views/examples/pass-data/test1.html @@ -0,0 +1,47 @@ +{% extends "layout.html" %} + +{% block pageTitle %} + Example - Passing data +{% endblock %} + +{% block beforeContent %} + {% include "includes/breadcrumb_examples.html" %} +{% endblock %} + +{% block content %} + +