UNPKG

@onereach/time-interpreter

Version:

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

139 lines (114 loc) 3.15 kB
const jsonfile = require("jsonfile/index.js"); const assert = require("assert").strict; const Interpreter = require("../index.js"); const converter = new Interpreter(); const valid = jsonfile.readFileSync("test/formatTimezone/valid.json"); const invalid = jsonfile.readFileSync("test/formatTimezone/invalid.json"); const testFormatTime = (assert, describe, input, expected) => { describe("output single value", function () { input.forEach((input) => { const expectedResult = expected[input].simple; it(input, function () { assert.deepEqual(converter.formatTimezone(input), expectedResult); }); }); }); describe("output as object", function () { input.forEach((input, i) => { let expectedResult = expected[input].object; if (expectedResult && !expectedResult.name) expectedResult.name = undefined; it(input, function () { assert.deepEqual(converter.formatTimezone(input, true), expectedResult); }); }); }); }; describe("#formatTimezone test valid input string", function () { testFormatTime(assert, describe, Object.keys(valid), valid); }); // 1.0.21 it("#formatTimezone +600", function () { assert.deepEqual( converter.formatTimezone("+600"), "+10:00" ); }); it("#formatTimezone -600", function () { assert.deepEqual( converter.formatTimezone("-600"), "-10:00" ); }); it("#formatTimezone +330", function () { assert.deepEqual( converter.formatTimezone("+330"), "+05:30" ); }); it("#formatTimezone -720", function () { assert.deepEqual( converter.formatTimezone("-720"), "-12:00" ); }); it("#formatTimezone +840", function () { assert.deepEqual( converter.formatTimezone("+840"), "+14:00" ); }); // 1.0.22 it("#formatTimezone +345", function () { assert.deepEqual( converter.formatTimezone("+345"), "+05:45" ); }); it("#formatTimezone +525", function () { assert.deepEqual( converter.formatTimezone("+525"), "+08:45" ); }); it("#formatTimezone +765", function () { assert.deepEqual( converter.formatTimezone("+765"), "+12:45" ); }); // INVALID describe("#formatTimezone test invalid input", function () { testFormatTime(assert, describe, Object.keys(invalid), invalid); }); it("#formatTimezone -820", function () { assert.deepEqual( converter.formatTimezone("-820"), null ); }); it("#formatTimezone +870", function () { assert.deepEqual( converter.formatTimezone("+870"), null ); }); it("#formatTimezone +110", function () { assert.deepEqual( converter.formatTimezone("+110"), null ); }); it("#formatTimezone +130", function () { assert.deepEqual( converter.formatTimezone("+130"), null ); }); it("#formatTimezone +178", function () { assert.deepEqual( converter.formatTimezone("+178"), null ); }); it("#formatTimezone -330", function () { assert.deepEqual( converter.formatTimezone("-330"), null ); }); it("#formatTimezone -90", function () { assert.deepEqual( converter.formatTimezone("-90"), null ); }); it("#formatTimezone +30", function () { assert.deepEqual( converter.formatTimezone("+30"), null ); });