metis-desk/scripts/software-reference-read.fixture.js

42 lines
1.3 KiB
JavaScript
Raw Normal View History

2026-10-24 23:19:17 +00:00
/** 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;
}