/** Lectura POST de referencias: respuestas sintéticas por propósito, ninguna escritura. */ export async function interceptSoftwareReads(page, resources, companyId, origin) { await page.route( `${origin}/api/resource-application-references/${companyId}/resolve`, (route) => { if (route.request().method() !== "POST") { return route.fallback(); } const request = route.request().postDataJSON(); if (!["software-installation", "application-configuration"].includes(request.purpose)) { throw new Error("Propósito de lectura no previsto por la fixture."); } const items = request.ids.map((id) => { const resource = resources.find((item) => item.id === id && item.companyId === companyId); if (!resource || resource.specification.templateName !== "Aplicación") { return { id, status: "unavailable" }; } return { id, status: "resolved", reference: { id, scope: "company", companyId, templateId: resource.values.templateId, name: resource.values.name, active: resource.values.active, kind: "application", }, }; }); return route.fulfill({ json: { purpose: request.purpose, items } }); } ); return true; }