import test from 'node:test'; import assert from 'node:assert/strict'; import fs from 'node:fs'; import path from 'node:path'; import { fileURLToPath } from 'node:url'; import { parseDownloadStatusJson, downloadStatusWarnings } from '../integrations/cisco-mpp-phone/downloadStatusJson.js'; const __dirname = path.dirname(fileURLToPath(import.meta.url)); const FIXTURE = fs.readFileSync(path.join(__dirname, 'fixtures/mpp/download-status-782.json'), 'utf8'); test('parseDownloadStatusJson: extracts provisioning and firmware history', () => { const parsed = parseDownloadStatusJson(FIXTURE); assert.equal(parsed.latestProvisioning.succeeded, true); assert.match(parsed.latestProvisioning.url, /cisco\.sipflash\.com/); assert.equal(parsed.latestFirmwareUpgrade.succeeded, true); assert.match(parsed.latestFirmwareUpgrade.url, /binaries\.webex\.com/); }); test('downloadStatusWarnings: flags MIC cert failure', () => { const parsed = parseDownloadStatusJson(FIXTURE); const warnings = downloadStatusWarnings(parsed); assert.ok(warnings.some((w) => /MIC cert/i.test(w))); assert.equal(parsed.micCert.failed, true); });