@onereach/time-interpreter
Version:
Convert dates, durations and time to canonical format (dates -> ISO 8601, durations -> milliseconds).
139 lines (114 loc) • 3.15 kB
JavaScript
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
);
});