97 lines
3.3 KiB
JavaScript
97 lines
3.3 KiB
JavaScript
// 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('Account Management CRUD', () => {
|
|
beforeEach(() => {
|
|
loginWithFixtures();
|
|
cy.visit('/account-admin');
|
|
cy.wait('@getUsers');
|
|
});
|
|
|
|
it('shows Create New button', () => {
|
|
cy.get('#create_new_acct_btn').should('exist');
|
|
cy.get('#create_new_acct_btn').should('contain', 'Create New');
|
|
});
|
|
|
|
it('opens create new account modal', () => {
|
|
cy.get('#create_new_acct_btn').click();
|
|
cy.get('#modal_container').should('be.visible');
|
|
cy.get('#modal_account_edit_or_create_new').should('be.visible');
|
|
// Should show account, name, password fields
|
|
cy.get('#input_account_field').should('exist');
|
|
cy.get('#input_name_field').should('exist');
|
|
cy.get('#input_first_pwd').should('exist');
|
|
});
|
|
|
|
it('create account confirm is disabled when fields are empty', () => {
|
|
cy.get('#create_new_acct_btn').click();
|
|
cy.get('.confirm-btn').should('be.disabled');
|
|
});
|
|
|
|
it('create account confirm enables when fields are filled', () => {
|
|
cy.get('#create_new_acct_btn').click();
|
|
cy.get('#input_account_field').type('newuser');
|
|
cy.get('#input_name_field').type('New User');
|
|
cy.get('#input_first_pwd').type('password1234');
|
|
cy.get('.confirm-btn').should('not.be.disabled');
|
|
});
|
|
|
|
it('cancel button closes the modal', () => {
|
|
cy.get('#create_new_acct_btn').click();
|
|
cy.get('#modal_container').should('be.visible');
|
|
cy.get('.cancel-btn').click();
|
|
cy.get('#modal_container').should('not.exist');
|
|
});
|
|
|
|
it('close (X) button closes the modal', () => {
|
|
cy.get('#create_new_acct_btn').click();
|
|
cy.get('#modal_container').should('be.visible');
|
|
cy.get('img[alt="X"]').click();
|
|
cy.get('#modal_container').should('not.exist');
|
|
});
|
|
|
|
it('double-click username opens account info modal', () => {
|
|
// Double-click on the first account username
|
|
cy.get('.account-cell').first().dblclick();
|
|
cy.get('#modal_container').should('be.visible');
|
|
});
|
|
|
|
it('delete button opens delete confirmation modal', () => {
|
|
// Click the delete icon for a non-current user
|
|
cy.get('.delete-account').first().click();
|
|
cy.get('#modal_container').should('be.visible');
|
|
cy.get('#modal_delete_acct_alert').should('be.visible');
|
|
});
|
|
|
|
it('delete modal has Yes and No buttons', () => {
|
|
cy.get('.delete-account').first().click();
|
|
cy.get('#calcel_delete_acct_btn').should('exist');
|
|
cy.get('#sure_to_delete_acct_btn').should('exist');
|
|
});
|
|
|
|
it('delete modal No button closes the modal', () => {
|
|
cy.get('.delete-account').first().click();
|
|
cy.get('#calcel_delete_acct_btn').click();
|
|
cy.get('#modal_container').should('not.exist');
|
|
});
|
|
|
|
it('shows checkboxes for Set as Admin and Activate in create modal', () => {
|
|
cy.get('#create_new_acct_btn').click();
|
|
cy.get('#account_create_checkboxes_section').should('be.visible');
|
|
cy.contains('Set as admin.').should('exist');
|
|
cy.contains('Activate now.').should('exist');
|
|
});
|
|
|
|
it('search bar filters user list', () => {
|
|
// Search filters by username, not display name
|
|
cy.get('#input_search').type('user1');
|
|
cy.get('img[alt="search"]').click();
|
|
// Should only show user1 (Alice Wang)
|
|
cy.contains('user1').should('exist');
|
|
});
|
|
});
|