From 5a29fda0d5e7f502c3e122d0a14f75ab3d942490 Mon Sep 17 00:00:00 2001 From: Koen Kanters Date: Thu, 5 Dec 2024 20:37:42 +0100 Subject: [PATCH] fix(ignore): improve e9240da62deb80ae7d50c8c3a61eb9a13f1da4e8 --- src/adapter/adapterDiscovery.ts | 8 +++++--- test/adapter/adapter.test.ts | 4 ++-- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/src/adapter/adapterDiscovery.ts b/src/adapter/adapterDiscovery.ts index 9a945d5703..2c1a618a80 100644 --- a/src/adapter/adapterDiscovery.ts +++ b/src/adapter/adapterDiscovery.ts @@ -1,3 +1,4 @@ +import assert from 'assert'; import {platform} from 'os'; import {PortInfo} from '@serialport/bindings-cpp'; @@ -460,9 +461,10 @@ export async function findmDNSAdapter(path: string): Promise<[adapter: Adapter, } export async function findTCPAdapter(path: string, adapter?: Adapter): Promise<[adapter: Adapter, path: string]> { - const regex = /^(tcp|socket):\/\/.+:\d{1,5}$/gm; - - if (!regex.test(path)) { + try { + const url = new URL(path); + assert(url.port !== ''); + } catch { throw new Error(`Invalid TCP path, expected format: tcp://:`); } diff --git a/test/adapter/adapter.test.ts b/test/adapter/adapter.test.ts index 463c8db58b..062cf041ce 100644 --- a/test/adapter/adapter.test.ts +++ b/test/adapter/adapter.test.ts @@ -190,9 +190,9 @@ describe('Adapter', () => { }); }); - it('invalid path', async () => { + test.each([`tcp://192168.1.321`, `tcp://192168.1.321:INVALID`])('invalid path', async (path) => { expect(async () => { - await Adapter.create({panID: 0x1a62, channelList: [11]}, {path: `tcp://192168.1.321:INVALID`, adapter: `zstack`}, 'test.db.backup', { + await Adapter.create({panID: 0x1a62, channelList: [11]}, {path, adapter: `zstack`}, 'test.db.backup', { disableLED: false, }); }).rejects.toThrow(`Invalid TCP path, expected format: tcp://:`);