ui: fix tests

This commit is contained in:
Matthew Penner 2023-01-12 12:44:49 -07:00
parent 155d7bb876
commit 7e1aa8d7e2
No known key found for this signature in database
4 changed files with 23 additions and 3 deletions

View file

@ -1,3 +1,5 @@
import { describe, expect, it } from 'vitest';
import extractSearchFilters from '@/helpers/extractSearchFilters'; import extractSearchFilters from '@/helpers/extractSearchFilters';
type TestCase = [string, 0 | Record<string, string[]>]; type TestCase = [string, 0 | Record<string, string[]>];

View file

@ -1,3 +1,5 @@
import { describe, expect, it } from 'vitest';
import splitStringWhitespace from '@/helpers/splitStringWhitespace'; import splitStringWhitespace from '@/helpers/splitStringWhitespace';
describe('@/helpers/splitStringWhitespace.ts', function () { describe('@/helpers/splitStringWhitespace.ts', function () {

View file

@ -49,15 +49,27 @@ describe('@/lib/formatters.ts', () => {
expect(ip('127.0.0.1')).equals('127.0.0.1'); expect(ip('127.0.0.1')).equals('127.0.0.1');
}); });
it('should format an IPv4 address with a port', () => {
expect(ip('127.0.0.1:25565')).equals('[127.0.0.1:25565]');
});
it('should format an IPv6 address', () => { it('should format an IPv6 address', () => {
expect(ip('::1')).equals('[::1]');
expect(ip(':::1')).equals('[:::1]'); expect(ip(':::1')).equals('[:::1]');
expect(ip('2001:db8::')).equals('[2001:db8::]'); expect(ip('2001:db8::')).equals('[2001:db8::]');
expect(ip('[::1]')).equals('[::1]');
expect(ip('[2001:db8::]')).equals('[2001:db8::]');
});
it('should format an IPv6 address with a port', () => {
expect(ip('[::1]:25565')).equals('[::1]:25565');
expect(ip('[2001:db8::]:25565')).equals('[2001:db8::]:25565');
}); });
it('should handle random inputs', () => { it('should handle random inputs', () => {
expect(ip('1')).equals('1'); expect(ip('1')).equals('1');
expect(ip('foobar')).equals('foobar'); expect(ip('foobar')).equals('foobar');
expect(ip('127.0.0.1:25565')).equals('[127.0.0.1:25565]');
}); });
}); });
}); });

View file

@ -27,8 +27,12 @@ function bytesToString(bytes: number, decimals = 2): string {
* Formats an IPv4 or IPv6 address. * Formats an IPv4 or IPv6 address.
*/ */
function ip(value: string): string { function ip(value: string): string {
// noinspection RegExpSimplifiable // Check if the value is already formatted.
return /^([a-f0-9:]+:+)+[a-f0-9]+$/.test(value) ? `[${value}]` : value; if (value.length > 0 && value[0] === '[') {
return value;
}
return /([a-f0-9:]+:+)+[a-f0-9]+/.test(value) ? `[${value}]` : value;
} }
export { ip, mbToBytes, bytesToString }; export { ip, mbToBytes, bytesToString };