import assert from 'node:assert/strict'; import test from 'node:test'; import { findExternalScriptSources, isExternalScriptSrc, rewriteKnownCdnScriptSources, } from './mindspace-published-script-localize.mjs'; test('isExternalScriptSrc detects http and protocol-relative urls', () => { assert.equal(isExternalScriptSrc('https://cdn.jsdelivr.net/npm/chart.js'), true); assert.equal(isExternalScriptSrc('//cdn.jsdelivr.net/npm/chart.js'), true); assert.equal(isExternalScriptSrc('/assets/page-data-client.js'), false); assert.equal(isExternalScriptSrc('assets/chart.umd.min.js'), false); }); test('rewriteKnownCdnScriptSources rewrites chart.js cdn urls to platform asset', () => { const source = ` `; const result = rewriteKnownCdnScriptSources(source); assert.equal(result.rewrittenCount, 2); assert.match(result.html, /src="\/assets\/chart\.umd\.min\.js"/g); assert.doesNotMatch(result.html, /cdn\.jsdelivr\.net/); assert.doesNotMatch(result.html, /cdnjs\.cloudflare\.com/); assert.match(result.html, /src="\/assets\/page-data-client\.js"/); }); test('findExternalScriptSources lists unresolved external scripts only', () => { const source = ` `; const rewritten = rewriteKnownCdnScriptSources(source).html; assert.deepEqual(findExternalScriptSources(rewritten), ['https://cdn.example.com/app.js']); });