import test from 'node:test' import assert from 'node:assert/strict' const mod = await import('../../../web/js/model-cache.js') function setNavigator(value) { Object.defineProperty(globalThis, 'navigator', { value, configurable: true, writable: true }) } test('criterion 1', async () => { const removed = [] const deletedCaches = [] const root = { async removeEntry(name, opts) { removed.push([name, opts]) }, } setNavigator({ storage: { getDirectory: async () => root } }) globalThis.caches = { delete: async (n) => { deletedCaches.push(n); return true } } await mod.clearModelCache() assert.ok(removed.some(([n]) => n === 'elffuss-models')) assert.deepEqual(deletedCaches, ['elffuss-models-v1']) }) test('criterion 2', async () => { let calls = 0 setNavigator({ storage: { getDirectory: async () => { calls++; throw new Error('sin OPFS') } } }) globalThis.caches = { delete: async () => true } await assert.doesNotReject(mod.clearModelCache()) assert.equal(calls, 1) })