blob: 3d528853e5a6266a57629144a4c8c32945dff70f [file] [log] [blame]
describe('The sk.human functions',
function() {
var clock;
afterEach(function () { if (clock) { clock.restore(); } });
function testPad() {
var testCases = [
[ 0, 0, "0"],
[ 1, 1, "1"],
[ 10, 1, "10"],
[ 10, 2, "10"],
[ 10, 3, "010"],
[31558150, 8, "31558150"],
[31558150, 9, "031558150"],
];
for (var testCase of testCases) {
assert.equal(sk.human.pad(testCase[0], testCase[1]), testCase[2]);
}
}
it('should return padded integers from pad', testPad);
function testStrDuration() {
var testCases = [
[ 0, " 0s"],
[ 1, " 1s"],
[ -1, " 1s"],
[ 2, " 2s"],
[ 10, " 10s"],
[ -30, " 30s"],
[ 59, " 59s"],
[ 60, " 1m"],
[ -61, " 1m 1s"],
[ 123, " 2m 3s"],
[ 3599, " 59m 59s"],
[ 3600, " 1h"],
[ 3601, " 1h 1s"],
[ 3659, " 1h 59s"],
[ 3660, " 1h 1m"],
[ 3661, " 1h 1m 1s"],
[ 86399, " 23h 59m 59s"],
[ 86400, " 1d"],
[ 86401, " 1d 1s"],
[ 604799, " 6d 23h 59m 59s"],
[ 604800, " 1w"],
[31558150, " 52w 1d 6h 9m 10s"]
];
for (var testCase of testCases) {
assert.equal(sk.human.strDuration(testCase[0]), testCase[1]);
}
}
it('should return human-readable duration from strDuration',
testStrDuration);
function testDiffDate() {
var now = Date.now();
clock = sinon.useFakeTimers(now);
var testCases = [
[ 0, "0s"], // 0s
[ 1, "0s"], // 0.001s
[ 499, "0s"], // 0.499s
[ 500, "1s"], // 0.5s
[ -1000, "1s"], // 1s
[ 1000, "1s"], // 1s
[ 2000, "2s"], // 2s
[ 9800, "10s"], // 9.8s
[ -10000, "10s"], // 10s
[ -30000, "30s"], // 30s
[ 59000, "59s"], // 59s
[ 59499, "59s"], // 59.499s
[ 59500, "1m"], // 59.5s
[ 60000, "1m"], // 1m 00s
[ -61000, "1m"], // 1m 01s
[ 123000, "2m"], // 2m 03s
[ 3569000, "59m"], // 59m 29s
[ 3570000, "1h"], // 59m 30s
[ 3600000, "1h"], // 1h 00m 00s
[ -3601000, "1h"], // 1h 00m 01s
[ 3659000, "1h"], // 1h 00m 59s
[ -3660000, "1h"], // 1h 01m 00s
[ 5399000, "1h"], // 1h 29m 59s
[ 5400000, "2h"], // 1h 30m 00s
[ -84599000, "23h"], // 23h 29m 59s
[ -84600000, "1d"], // 23h 30m 00s
[ -86399000, "1d"], // 23h 59m 59s
[ 86400000, "1d"], // 1d 00h 00m 00s
[ -561599000, "6d"], // 6d 11h 59m 59s
[ -561600000, "1w"], // 6d 12h 00m 00s
[ 604800000, "1w"], // 1w 0d 00h 00m 00s
[31558150000, "52w"] // 52w 1d 06h 09m 10s
];
for (var testCase of testCases) {
var diffMs = testCase[0];
var expected = testCase[1];
var ms = now + diffMs;
assert.equal(sk.human.diffDate(ms), expected,
'Input is ' + ms + ', now is ' + now);
assert.equal(sk.human.diffDate(new Date(ms).toISOString()), expected,
'Input is ' + new Date(ms).toISOString() +
', now is ' + new Date().toISOString());
}
}
it('should return human-readable duration from diffDate',
testDiffDate);
function testBytes() {
var testBytes = [
[ 0, "0 B"], // 0 B
[ 1, "1 B"], // 1 B
[ 499, "499 B"], // 499 B
[ 500, "500 B"], // 500 B
[ 1000, "1000 B"], // 1000 B
[ 1234, "1 KB"], // 1 KB 210 B
[ 2000, "2 KB"], // 1 KB 976 B
[ 9727, "9 KB"], // 9 KB 511 B
[ 9728, "10 KB"], // 9 KB 512 B
[ 30000, "29 KB"], // 29 KB 304 B
[ 1024000, "1000 KB"], // 1000 KB 000 B
[ 1048500, "1 MB"], // 1023 KB 948 B
[ 1048576, "1 MB"], // 1 MB 000 KB 000 B
[ 1048577, "1 MB"], // 1 MB 000 KB 001 B
[ 300000000, "286 MB"], // 286 MB 104 KB 768 B
[ 1072693248, "1023 MB"], // 1023 MB 000 KB 000 B
[ 1073741300, "1 GB"], // 1023 MB1023 KB 999 B
[ 1073741824, "1 GB"], // 1 GB 000 MB 000 KB 000 B
[ 1073741825, "1 GB"], // 1 GB 000 MB 000 KB 001 B
];
for (var testBytes of testBytes) {
var b = testBytes[0];
var expected = testBytes[1];
assert.equal(sk.human.bytes(b), expected,
'Input is ' + b +", Unit is bytes");
}
var testMB = [
[ 0, "0 B"], // 0 MB
[ 1, "1 MB"], // 1 MB
[ 499, "499 MB"], // 499 MB
[ 500, "500 MB"], // 500 MB
[ 1000, "1000 MB"], // 1000 MB
[ 1234, "1 GB"], // 1 GB 210 MB
[ 2000, "2 GB"], // 1 GB 976 MB
[ 9727, "9 GB"], // 9 GB 511 MB
[ 9728, "10 GB"], // 9 GB 512 MB
[ 30000, "29 GB"], // 29 GB 304 MB
[ 1024000, "1000 GB"], // 1000 GB 000 MB
[ 1048500, "1 TB"], // 1023 GB 948 MB
[ 1048576, "1 TB"], // 1 TB 000 GB 000 MB
[ 1048577, "1 TB"], // 1 TB 000 GB 001 MB
[ 300000000, "286 TB"], // 286 TB 104 GB 768 MB
[ 1072693248, "1023 TB"], // 1023 TB 000 GB 000 MB
[ 1073741300, "1 PB"], // 1023 TB1023 GB 999 MB
[ 1073741824, "1 PB"], // 1 PB 000 TB 000 GB 000 MB
[ 1073741825, "1 PB"], // 1 PB 000 TB 000 GB 001 MB
];
for (var testMB of testMB) {
var b = testMB[0];
var expected = testMB[1];
assert.equal(sk.human.bytes(b, sk.MB), expected,
'Input is ' + b +", Unit is Megabytes");
}
}
it('should return human-readable bytes from bytes',
testBytes);
}
);