Files
weave-scope/client/app/scripts/utils/__tests__/string-utils-test.js
2017-11-03 10:43:41 +01:00

51 lines
1.7 KiB
JavaScript

import moment from 'moment';
describe('StringUtils', () => {
const StringUtils = require('../string-utils');
describe('formatMetric', () => {
const f = StringUtils.formatMetric;
it('it should render 0', () => {
expect(f(0)).toBe('0.00');
});
});
describe('longestCommonPrefix', () => {
const f = StringUtils.longestCommonPrefix;
it('it should return the longest common prefix', () => {
expect(f(['interspecies', 'interstellar'])).toBe('inters');
expect(f(['space', 'space'])).toBe('space');
expect(f([''])).toBe('');
expect(f(['prefix', 'suffix'])).toBe('');
});
});
describe('ipToPaddedString', () => {
const f = StringUtils.ipToPaddedString;
it('it should return the formatted IP', () => {
expect(f('10.244.253.4')).toBe('010.244.253.004');
expect(f('0.24.3.4')).toBe('000.024.003.004');
});
});
describe('humanizedRoundedDownDuration', () => {
const f = StringUtils.humanizedRoundedDownDuration;
it('it should return the humanized duration', () => {
expect(f(moment.duration(0))).toBe('now');
expect(f(moment.duration(0.9 * 1000))).toBe('now');
expect(f(moment.duration(1 * 1000))).toBe('1 second');
expect(f(moment.duration(8.62 * 60 * 1000))).toBe('8 minutes');
expect(f(moment.duration(14.99 * 60 * 60 * 1000))).toBe('14 hours');
expect(f(moment.duration(5.2 * 24 * 60 * 60 * 1000))).toBe('5 days');
expect(f(moment.duration(11.8 * 30 * 24 * 60 * 60 * 1000))).toBe('11 months');
expect(f(moment.duration(12.8 * 30 * 24 * 60 * 60 * 1000))).toBe('1 year');
expect(f(moment.duration(9.4 * 12 * 30 * 24 * 60 * 60 * 1000))).toBe('9 years');
});
});
});