// 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("File Operations", () => { beforeEach(() => { loginWithFixtures(); cy.visit("/files"); cy.contains("sample-process.xes").should("exist"); }); it("file list table has sortable columns", () => { // Check that table headers exist with expected columns cy.get("table").within(() => { cy.contains("th", "Name").should("exist"); cy.contains("th", "Dependency").should("exist"); cy.contains("th", "File Type").should("exist"); cy.contains("th", "Owner").should("exist"); cy.contains("th", "Last Update").should("exist"); }); }); it("clicking column header sorts the table", () => { // Click "Name" header to sort cy.contains("th", "Name").click(); // After sorting, table should still have data cy.get("table tbody tr").should("have.length.greaterThan", 0); }); it("table rows show file data from fixture", () => { cy.get("table tbody").within(() => { cy.contains("sample-process.xes").should("exist"); cy.contains("filtered-sample").should("exist"); cy.contains("production-log.csv").should("exist"); }); }); it("table shows owner names", () => { cy.get("table tbody").within(() => { cy.contains("Test Admin").should("exist"); cy.contains("Alice Wang").should("exist"); }); }); it("table shows file types", () => { cy.get("table tbody").within(() => { cy.contains("log").should("exist"); }); }); it("right-click on file row shows context menu", () => { // PrimeVue DataTable with contextmenu cy.get("table tbody tr").first().rightclick(); // Context menu behavior depends on implementation // Just verify the right-click doesn't break anything cy.get("table tbody tr").should("have.length.greaterThan", 0); }); it("grid view shows file cards", () => { // Switch to grid view cy.get("svg").parent("li.cursor-pointer").last().click(); // Grid cards should be visible cy.get("li[title]").should("have.length.greaterThan", 0); }); it("Import button opens upload modal", () => { cy.get("#import_btn").click(); // Upload modal should appear cy.get("#import_btn").should("exist"); }); });