// The Lucia project. // Copyright 2026-2026 DSP, inc. All rights reserved. // Authors: // imacat.yang@dsp.im (imacat), 2026/03/05 import { loginWithFixtures } from "../support/intercept"; describe("SweetAlert2 Modals", () => { describe("File Context Menu - Rename", () => { beforeEach(() => { loginWithFixtures(); cy.visit("/files"); cy.wait("@getFiles"); }); it("right-click on table row shows context menu with Rename", () => { cy.get("table tbody tr").first().rightclick(); cy.contains("Rename").should("be.visible"); }); it("right-click context menu shows Download option", () => { cy.get("table tbody tr").first().rightclick(); cy.contains("Download").should("be.visible"); }); it("right-click context menu shows Delete option", () => { cy.get("table tbody tr").first().rightclick(); cy.contains("Delete").should("be.visible"); }); it("clicking Rename opens SweetAlert rename dialog", () => { cy.get("table tbody tr").first().rightclick(); cy.contains("Rename").click(); // SweetAlert popup should appear with RENAME title cy.get(".swal2-popup").should("be.visible"); cy.get(".swal2-title").should("contain", "RENAME"); cy.get(".swal2-input").should("exist"); }); it("rename dialog has pre-filled file name", () => { cy.get("table tbody tr").first().rightclick(); cy.contains("Rename").click(); cy.get(".swal2-input").should("not.have.value", ""); }); it("rename dialog can be cancelled", () => { cy.get("table tbody tr").first().rightclick(); cy.contains("Rename").click(); cy.get(".swal2-popup").should("be.visible"); cy.get(".swal2-cancel").click(); cy.get(".swal2-popup").should("not.exist"); }); it("clicking Delete opens SweetAlert delete confirmation", () => { cy.get("table tbody tr").first().rightclick(); cy.contains("Delete").click(); // SweetAlert popup should appear with CONFIRM DELETION cy.get(".swal2-popup").should("be.visible"); cy.get(".swal2-title").should("contain", "CONFIRM DELETION"); }); it("delete confirmation shows file name", () => { cy.get("table tbody tr").first().rightclick(); cy.contains("Delete").click(); cy.get(".swal2-popup").should("be.visible"); cy.get(".swal2-html-container").should("contain", "delete"); }); it("delete confirmation can be cancelled", () => { cy.get("table tbody tr").first().rightclick(); cy.contains("Delete").click(); cy.get(".swal2-popup").should("be.visible"); cy.get(".swal2-cancel").click(); cy.get(".swal2-popup").should("not.exist"); }); }); describe("File Context Menu on Grid View", () => { beforeEach(() => { loginWithFixtures(); cy.visit("/files"); cy.wait("@getFiles"); // Switch to grid view cy.get("svg").parent("li.cursor-pointer").last().click(); }); it("right-click on grid card shows context menu", () => { cy.get("li[title]").first().rightclick(); cy.contains("Rename").should("be.visible"); cy.contains("Delete").should("be.visible"); }); it("grid card rename opens SweetAlert dialog", () => { cy.get("li[title]").first().rightclick(); cy.contains("Rename").click(); cy.get(".swal2-popup").should("be.visible"); cy.get(".swal2-title").should("contain", "RENAME"); }); }); describe("Account Delete Confirmation", () => { beforeEach(() => { loginWithFixtures(); cy.visit("/account-admin"); cy.wait("@getUsers"); }); it("delete confirmation Yes button triggers delete API", () => { cy.get(".delete-account").first().click(); cy.get("#modal_container").should("be.visible"); cy.get("#sure_to_delete_acct_btn").click(); cy.wait("@deleteUser"); // Modal should close after deletion }); }); });