Koha-clms/t/cypress/integration/HttpClient_spec.ts

30 lines
1.1 KiB
TypeScript

describe("HttpClient", () => {
beforeEach(() => {
cy.login();
cy.title().should("eq", "Koha staff interface");
});
it("handles C4::Service error format without crashing", () => {
// C4::Service returns { type, message } on failure — not the OpenAPI
// { error } or { errors: [...] } shape that http-client.js was written for.
// Without the fix, accessing json.errors.map(...) throws:
// TypeError: Cannot read properties of undefined (reading 'map')
cy.intercept("POST", "/cgi-bin/koha/svc/config/systempreferences", {
statusCode: 400,
headers: { "content-type": "application/json" },
body: { type: "auth", message: "expired" },
}).as("sysprefUpdate");
cy.window().then(win => {
const client = win.APIClient.sysprefs;
return client.sysprefs
.update("WebBasedSelfCheck", "1")
.catch(err => {
expect(err.message).to.include("expired");
});
});
cy.wait("@sysprefUpdate");
});
});