1
1
mirror of https://github.com/pterodactyl/panel.git synced 2024-11-25 02:22:36 +01:00

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';
type TestCase = [string, 0 | Record<string, string[]>];

View File

@ -1,3 +1,5 @@
import { describe, expect, it } from 'vitest';
import splitStringWhitespace from '@/helpers/splitStringWhitespace';
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');
});
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', () => {
expect(ip('::1')).equals('[::1]');
expect(ip(':::1')).equals('[:::1]');
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', () => {
expect(ip('1')).equals('1');
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.
*/
function ip(value: string): string {
// noinspection RegExpSimplifiable
return /^([a-f0-9:]+:+)+[a-f0-9]+$/.test(value) ? `[${value}]` : value;
// Check if the value is already formatted.
if (value.length > 0 && value[0] === '[') {
return value;
}
return /([a-f0-9:]+:+)+[a-f0-9]+/.test(value) ? `[${value}]` : value;
}
export { ip, mbToBytes, bytesToString };