From 27dfe79636d4958e363505205a12effcbc265e31 Mon Sep 17 00:00:00 2001 From: alam00000 Date: Wed, 28 Oct 2026 12:27:28 +0530 Subject: [PATCH] fix(tests): update WasmProvider tests to handle unversioned CDN URLs from older releases --- src/js/utils/wasm-provider.ts | 7 +++++-- src/tests/wasm-provider.test.ts | 15 +++++++++++++++ 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/src/js/utils/wasm-provider.ts b/src/js/utils/wasm-provider.ts index 936ec6c3..c99bed2a 100644 --- a/src/js/utils/wasm-provider.ts +++ b/src/js/utils/wasm-provider.ts @@ -59,8 +59,11 @@ const BUILTIN_TRUSTED_HOSTS = collectBuiltinTrustedHosts(); function isOutdatedCdnPin(packageName: WasmPackage, url: string): boolean { const current = CDN_DEFAULTS[packageName]; - const packagePrefix = current.slice(0, current.lastIndexOf('@') + 1); - return url !== current && url.startsWith(packagePrefix); + const packageUrl = current.slice(0, current.lastIndexOf('@')); + return ( + url !== current && + (url.startsWith(`${packageUrl}@`) || url.startsWith(`${packageUrl}/`)) + ); } function withTrailingSlash(url: string): string { diff --git a/src/tests/wasm-provider.test.ts b/src/tests/wasm-provider.test.ts index 321500be..f4d497d0 100644 --- a/src/tests/wasm-provider.test.ts +++ b/src/tests/wasm-provider.test.ts @@ -39,6 +39,21 @@ describe('WasmProvider saved URLs', () => { expect(storedConfig()).toEqual({}); }); + it('replaces an unversioned CDN URL saved by older releases', async () => { + const provider = await loadProvider({ + ghostscript: 'https://cdn.jsdelivr.net/npm/@bentopdf/gs-wasm/assets/', + cpdf: 'https://cdn.jsdelivr.net/npm/coherentpdf/dist/', + }); + + expect(provider.getUrl('ghostscript')).toBe( + 'https://cdn.jsdelivr.net/npm/@bentopdf/gs-wasm@0.1.1/assets/' + ); + expect(provider.getUrl('cpdf')).toBe( + 'https://cdn.jsdelivr.net/npm/coherentpdf@2.5.5/dist/' + ); + expect(storedConfig()).toEqual({}); + }); + it('keeps a self-hosted URL the user chose', async () => { const provider = await loadProvider({ pymupdf: 'http://localhost/wasm/pymupdf/',