From 7083e7aff76e1c6c58ec0412aa791b8284e728cf Mon Sep 17 00:00:00 2001 From: xiaojunnuo Date: Thu, 7 May 2026 22:03:33 +0800 Subject: [PATCH] =?UTF-8?q?test(tld-client):=20=E6=B7=BB=E5=8A=A0=E5=AF=B9?= =?UTF-8?q?rdap.ss=E5=9B=9E=E9=80=80=E6=9C=BA=E5=88=B6=E7=9A=84=E6=B5=8B?= =?UTF-8?q?=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 验证当rdap和whoiser都失败时,TldClient能正确委托RdapSsClient处理 --- .../modules/cert/service/tld-client.test.ts | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/packages/ui/certd-server/src/modules/cert/service/tld-client.test.ts b/packages/ui/certd-server/src/modules/cert/service/tld-client.test.ts index 65d723002..cd196a08f 100644 --- a/packages/ui/certd-server/src/modules/cert/service/tld-client.test.ts +++ b/packages/ui/certd-server/src/modules/cert/service/tld-client.test.ts @@ -33,6 +33,32 @@ describe("TldClient", () => { assert.equal(result.expirationDate, 1795104000000); }); + it("delegates rdap.ss fallback to RdapSsClient", async () => { + const client = new TldClient() as any; + const queriedDomains: string[] = []; + + client.init = async () => {}; + client.getDomainExpirationByRdap = async () => { + throw new Error("rdap failed"); + }; + client.getDomainExpirationByWhoiser = async () => { + throw new Error("whoiser failed"); + }; + client.rdapSsClient = { + getDomainInfo: async (domain: string) => { + queriedDomains.push(domain); + return { expirationDate: 1795104000000, registrationDate: 995040000000 }; + }, + }; + + const result = await client.getDomainExpirationDate("google.com.hk"); + + assert.deepEqual(queriedDomains, ["google.com.hk"]); + assert.deepEqual(result, { expirationDate: 1795104000000, registrationDate: 995040000000 }); + }); +}); + +describe("RdapSsClient", () => { it("queries rdap.ss and parses HK whois date fields", async () => { const originalRequest = http.request; let requestedConfig: any;