import { bytesToString, ip, mbToBytes } from '@/lib/formatters'; describe('@/lib/formatters.ts', function () { describe('mbToBytes()', function () { it('should convert from MB to Bytes', function () { expect(mbToBytes(1)).toBe(1_000_000); expect(mbToBytes(0)).toBe(0); expect(mbToBytes(0.1)).toBe(100_000); expect(mbToBytes(0.001)).toBe(1000); expect(mbToBytes(1024)).toBe(1_024_000_000); }); }); describe('bytesToString()', function () { it.each([ [0, '0 Bytes'], [0.5, '0 Bytes'], [0.9, '0 Bytes'], [100, '100 Bytes'], [100.25, '100.25 Bytes'], [100.998, '101 Bytes'], [512, '512 Bytes'], [1000, '1 KB'], [1024, '1.02 KB'], [5068, '5.07 KB'], [10_000, '10 KB'], [11_864, '11.86 KB'], [1_000_000, '1 MB'], [1_356_000, '1.36 MB'], [1_024_000, '1.02 MB'], [1_000_000_000, '1 GB'], [1_024_000_000, '1.02 GB'], [1_678_342_000, '1.68 GB'], [1_000_000_000_000, '1 TB'], ])('should format %d bytes as "%s"', function (input, output) { expect(bytesToString(input)).toBe(output); }); }); describe('ip()', function () { it('should format an IPv4 address', function () { expect(ip('127.0.0.1')).toBe('127.0.0.1'); }); it('should format an IPv6 address', function () { expect(ip(':::1')).toBe('[:::1]'); expect(ip('2001:db8::')).toBe('[2001:db8::]'); }); it('should handle random inputs', function () { expect(ip('1')).toBe('1'); expect(ip('foobar')).toBe('foobar'); expect(ip('127.0.0.1:25565')).toBe('[127.0.0.1:25565]'); }); }); });