UNPKG

gpii-universal

Version:

Cross platform, core components of the GPII personalization infrastructure.

109 lines (95 loc) 3.55 kB
/* * Settings Handler Utilities Tests * * Copyright 2016 Raising the Floor - International * * Licensed under the New BSD license. You may not use this file except in * compliance with this License. * * The research leading to these results has received funding from the European Union's * Seventh Framework Programme (FP7/2007-2013) * under grant agreement no. 289016. * * You may obtain a copy of the License at * https://github.com/GPII/universal/blob/master/LICENSE.txt */ "use strict"; var fluid = require("infusion"), gpii = fluid.registerNamespace("gpii"), jqUnit = fluid.registerNamespace("jqUnit"), kettle = require("kettle"); fluid.registerNamespace("gpii.tests.settingsHandlers"); kettle.loadTestingSupport(); require("settingsHandlers"); gpii.tests.settingsHandlers.readFile = function () { // check that we're able to read existing file: var result = gpii.settingsHandlers.readFile({ filename: __dirname + "/data/basic.json" }); jqUnit.assertDeepEq("Expecting to have read the file properly", { Hello: "World" }, JSON.parse(result)); // check reading non-existing file var result2 = gpii.settingsHandlers.readFile({ filename: __dirname + "/data/bogus.json" }); jqUnit.assertEquals("Expecting undefined on reading non-existing file", undefined, result2); }; var handleFileSolutionEntryData = { existingFileSolutionEntry: { options: { "filename": __dirname + "/data/basic.json" }, settings: { "Hello": "Mars" } }, missingFileSolutionEntry: { options: { "filename": __dirname + "/data/bogus.json" }, settings: { "Hello": "Mars" } } }; gpii.tests.settingsHandlers.handleFileSolutionEntry = function () { // an existing file should be parsed and the current value returned: var result = gpii.settingsHandlers.handleFileSolutionEntry(handleFileSolutionEntryData.existingFileSolutionEntry, gpii.settingsHandlers.getSettings, gpii.settingsHandlers.JSONSettingsHandler.parser, false); jqUnit.assertDeepEq("Expecting to have read the file properly", { "settings": { "Hello": "World" } }, result); // a non-existing file should return undefined for the requested settings: result = gpii.settingsHandlers.handleFileSolutionEntry(handleFileSolutionEntryData.missingFileSolutionEntry, gpii.settingsHandlers.getSettings, gpii.settingsHandlers.JSONSettingsHandler.parser, false); jqUnit.assertDeepEq("Expecting to get 'undefined' values for settings requested", { "settings": { "Hello": undefined } }, result); }; fluid.defaults("gpii.tests.settingsHandlers.env", { gradeNames: ["fluid.test.testEnvironment"], components: { tester: { type: "gpii.tests.settingsHandlers.caseHolder" } } }); fluid.defaults("gpii.tests.settingsHandlers.caseHolder", { gradeNames: ["fluid.test.testCaseHolder"], modules: [{ name: "File Dependency Methods tests", tests: [{ expect: 2, name: "gpii.settingsHandlers.readFile tests", func: "gpii.tests.settingsHandlers.readFile" }, { expect: 2, name: "gpii.settingsHandlers.handleFileSolutionEntry tests", func: "gpii.tests.settingsHandlers.handleFileSolutionEntry" }] }] }); module.exports = kettle.test.bootstrap("gpii.tests.settingsHandlers.env");