import assert from 'node:assert/strict' import test from 'node:test' import { _initializeFromConfigFile, awaitInitialization } from '../src/sdk' const CONFIG_VECTOR = 'XUQM-CONFIG-V1.AAECAwQFBgcICQoLDA0ODw.EBESExQVFhcYGRob.vhdKh3AhEdeftXCdXp9KusVySkrBNAzmdaA747uf1tVWGFnAsJeCLe2mHKk0dxxez8SRTknIbk1UuRibnXY0Gbot1fmkR-jSN2ssMJO0_zQ8dUu8' test('awaitInitialization observes in-flight work and retries a transient config request failure', async () => { const originalFetch = globalThis.fetch let requestCount = 0 globalThis.fetch = async () => { requestCount += 1 if (requestCount === 1) { throw new TypeError('Network request failed') } return new Response( JSON.stringify({ data: { apiUrl: 'https://api.example.test', }, }), { headers: { 'content-type': 'application/json' }, status: 200, }, ) } try { const autoInitialization = _initializeFromConfigFile(CONFIG_VECTOR, { debug: true, }) await assert.rejects(() => awaitInitialization(), /Network request failed/) await assert.rejects(() => autoInitialization, /Network request failed/) // 配置内容由 common 保存,扩展包再次等待时可以自行重试,无需宿主传递配置。 await assert.doesNotReject(() => awaitInitialization()) assert.equal(requestCount, 2) } finally { globalThis.fetch = originalFetch } })