Migrate Cypress E2E from cy.intercept to MSW service worker

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-22 09:30:22 +08:00
parent b978071f94
commit 3d1de913f8
27 changed files with 184 additions and 307 deletions

View File

@@ -9,13 +9,22 @@ import { loginWithFixtures } from "../../support/intercept";
describe("Create an Account", () => {
beforeEach(() => {
loginWithFixtures();
// Override: new usernames should return 404 (account doesn't exist yet)
cy.intercept("GET", "/api/users/unit-test-*", {
statusCode: 404,
body: { detail: "Not found" },
}).as("checkNewUser");
cy.visit("/account-admin");
cy.wait("@getUsers");
cy.contains("Test Admin").should("exist");
// Override: new usernames should return 404 (account doesn't exist yet)
cy.window().then((win) => {
const { http, HttpResponse } = win.__msw__;
win.__mswWorker__.use(
http.get("/api/users/:username", ({ params }) => {
if (params.username.startsWith("unit-test-")) {
return HttpResponse.json(
{ detail: "Not found" },
{ status: 404 },
);
}
}),
);
});
});
it("Create a new account with admin role; should show saved message.", () => {
@@ -30,7 +39,6 @@ describe("Create an Account", () => {
.should("be.visible")
.and("be.enabled")
.click();
cy.wait("@postUser");
cy.contains("Account added").should("be.visible");
});