* chore: 🤖 add @formatjs/intl-durationformat to addons/core * refactor: 💡 replace old duration format with new package * chore: 🤖 remove intl-unofficial-duration-unit-format * Add missing copyright headers * test: 💍 add more test cases --------- Co-authored-by: cameronperera <cameronperera@users.noreply.github.com>
80 lines
2.4 KiB
JavaScript
80 lines
2.4 KiB
JavaScript
/**
|
|
* Copyright (c) HashiCorp, Inc.
|
|
* SPDX-License-Identifier: BUSL-1.1
|
|
*/
|
|
|
|
import { secondsToDuration } from 'core/utils/seconds-to-duration';
|
|
import { module, test } from 'qunit';
|
|
|
|
module('Unit | Utility | seconds-to-duration', function () {
|
|
test('it handles 0 correctly', function (assert) {
|
|
const result = secondsToDuration(0);
|
|
|
|
assert.strictEqual(result.seconds, 0);
|
|
assert.strictEqual(result.minutes, 0);
|
|
assert.strictEqual(result.hours, 0);
|
|
assert.strictEqual(result.days, 0);
|
|
assert.strictEqual(result.weeks, 0);
|
|
});
|
|
|
|
test('it converts seconds correctly', function (assert) {
|
|
const result = secondsToDuration(45);
|
|
|
|
assert.strictEqual(result.seconds, 45);
|
|
assert.strictEqual(result.minutes, 0);
|
|
assert.strictEqual(result.hours, 0);
|
|
assert.strictEqual(result.days, 0);
|
|
assert.strictEqual(result.weeks, 0);
|
|
});
|
|
|
|
test('it converts minutes correctly', function (assert) {
|
|
const result = secondsToDuration(100);
|
|
|
|
assert.strictEqual(result.seconds, 40);
|
|
assert.strictEqual(result.minutes, 1);
|
|
assert.strictEqual(result.hours, 0);
|
|
assert.strictEqual(result.days, 0);
|
|
assert.strictEqual(result.weeks, 0);
|
|
});
|
|
|
|
test('it converts hours correctly', function (assert) {
|
|
const result = secondsToDuration(5000);
|
|
|
|
assert.strictEqual(result.seconds, 20);
|
|
assert.strictEqual(result.minutes, 23);
|
|
assert.strictEqual(result.hours, 1);
|
|
assert.strictEqual(result.days, 0);
|
|
assert.strictEqual(result.weeks, 0);
|
|
});
|
|
|
|
test('it converts days correctly', function (assert) {
|
|
const result = secondsToDuration(500000);
|
|
|
|
assert.strictEqual(result.seconds, 20);
|
|
assert.strictEqual(result.minutes, 53);
|
|
assert.strictEqual(result.hours, 18);
|
|
assert.strictEqual(result.days, 5);
|
|
assert.strictEqual(result.weeks, 0);
|
|
});
|
|
|
|
test('it converts weeks correctly', function (assert) {
|
|
const result = secondsToDuration(800000);
|
|
|
|
assert.strictEqual(result.seconds, 20);
|
|
assert.strictEqual(result.minutes, 13);
|
|
assert.strictEqual(result.hours, 6);
|
|
assert.strictEqual(result.days, 2);
|
|
assert.strictEqual(result.weeks, 1);
|
|
});
|
|
|
|
test('it handles negative values', function (assert) {
|
|
const result = secondsToDuration(-800000);
|
|
|
|
assert.strictEqual(result.seconds, 0);
|
|
assert.strictEqual(result.minutes, 0);
|
|
assert.strictEqual(result.hours, 0);
|
|
assert.strictEqual(result.days, 0);
|
|
assert.strictEqual(result.weeks, 0);
|
|
});
|
|
});
|