UNPKG

@onereach/time-interpreter

Version:

Convert dates, durations and time to canonical format (dates -> ISO 8601, durations -> milliseconds).

60 lines (51 loc) 2.09 kB
const jsonfile = require("jsonfile/index.js"); const assert = require("assert").strict; const Interpreter = require("../index.js"); const converter = new Interpreter(); // TODO: generate expected results files depending on summer/winter time const objects = jsonfile.readFileSync("test/formatTime/objects.json"); const numbers = jsonfile.readFileSync("test/formatTime/numbers.json"); const stringNumbers = jsonfile.readFileSync( "test/formatTime/string-numbers.json" ); const times = jsonfile.readFileSync("test/formatTime/times.json"); const invalid = jsonfile.readFileSync("test/formatTime/invalid.json"); const testFormatTime = (assert, describe, input, expected) => { const defResult = { "offsetNum": undefined, "time": undefined, "timezoneOffset": undefined, "zoneName": undefined }; describe("test-1 #formatTime(time, 'America/Denver')", function () { input.forEach((date, i) => { if (typeof date === "number") key = "input-" + date; else if (typeof date === "object") key = JSON.stringify(date); else key = date; let expectedResult = expected[key].inZone; const actualResult = converter.formatTime(date, "America/Denver"); if (actualResult) delete actualResult.timeWithFractSec; if (JSON.stringify(expectedResult) === "{}") expectedResult = defResult; it(key, function () { assert.deepEqual( actualResult, expectedResult ); }); }); }); describe("test-2 #formatTime(time, '+01:00')", function () { input.forEach((date, i) => { if (typeof date === "number") key = "input-" + date; else if (typeof date === "object") key = JSON.stringify(date); else key = date; let expectedResult = expected[key].inOffset; const actualResult = converter.formatTime(date, "+01:00"); if (actualResult) delete actualResult.timeWithFractSec; if (JSON.stringify(expectedResult) === "{}") expectedResult = defResult; it(key, function () { assert.deepEqual(actualResult, expectedResult); }); }); }); };