// 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("My Account Page", () => { beforeEach(() => { loginWithFixtures(); cy.visit("/my-account"); cy.wait("@getUserDetail"); }); it("displays user name heading", () => { cy.get("#general_acct_info_user_name").should("exist"); cy.get("#general_acct_info_user_name").should("contain", "Test Admin"); }); it("shows Admin badge for admin user", () => { cy.contains("Admin").should("exist"); }); it("shows visit count info", () => { cy.get("#general_account_visit_info").should("exist"); cy.get("#general_account_visit_info").should("contain", "Total visits"); }); it("displays account username (read-only)", () => { cy.contains("Test Admin").should("exist"); }); it("shows Edit button for name field", () => { cy.contains("button", "Edit").should("exist"); }); it("clicking Edit shows input field and Save/Cancel buttons", () => { cy.contains("button", "Edit").first().click(); cy.get("#input_name_field").should("exist"); cy.contains("button", "Save").should("exist"); cy.contains("button", "Cancel").should("exist"); }); it("clicking Cancel reverts name field to read-only", () => { cy.contains("button", "Edit").first().click(); cy.get("#input_name_field").should("exist"); cy.contains("button", "Cancel").click(); cy.get("#input_name_field").should("not.exist"); }); it("shows Reset button for password field", () => { cy.contains("button", "Reset").should("exist"); }); it("clicking Reset shows password input and Save/Cancel", () => { cy.contains("button", "Reset").click(); cy.get('input[type="password"]').should("exist"); cy.contains("button", "Save").should("exist"); cy.contains("button", "Cancel").should("exist"); }); it("clicking Cancel on password field hides the input", () => { cy.contains("button", "Reset").click(); cy.get('input[type="password"]').should("exist"); // The Cancel button for password is the second one cy.get(".cancel-btn").click(); cy.get('input[type="password"]').should("not.exist"); }); it("shows Session section", () => { cy.contains("Session").should("exist"); }); });