// 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 }); }); });