// The Lucia project. // Copyright 2024-2026 DSP, inc. All rights reserved. // Authors: // cindy.chang@dsp.im (Cindy Chang), 2024/07/03 // imacat.yang@dsp.im (imacat), 2026/03/05 import { loginWithFixtures } from '../../support/intercept'; const MSG_ACCOUNT_NOT_UNIQUE = 'Account has already been registered.'; describe('Account duplication check.', () => { beforeEach(() => { loginWithFixtures(); cy.visit('/account-admin'); cy.wait('@getUsers'); }); it('When an account already exists, show error message on confirm.', () => { const testAccountName = '000000'; // First creation: account doesn't exist yet cy.intercept('GET', '/api/users/000000', { statusCode: 404, body: { detail: 'Not found' }, }).as('checkNewUser'); cy.contains('button', 'Create New').should('be.visible').click(); cy.get('#input_account_field').type(testAccountName); cy.get('#input_name_field').type(testAccountName); cy.get('#input_first_pwd').type(testAccountName); cy.get('.checkbox-and-text').first().find('div').first().click(); cy.contains('button', 'Confirm') .should('be.visible') .and('be.enabled') .click(); cy.wait('@postUser'); cy.contains('Account added').should('be.visible'); // Second creation: now account exists — override to return 200 cy.intercept('GET', '/api/users/000000', { statusCode: 200, body: { username: '000000', name: '000000', is_admin: false, is_active: true, roles: [] }, }).as('checkExistingUser'); cy.contains('button', 'Create New').should('be.visible').click(); cy.get('#input_account_field').type(testAccountName); cy.get('#input_name_field').type(testAccountName); cy.get('#input_first_pwd').type(testAccountName); cy.get('.checkbox-and-text').first().find('div').first().click(); cy.contains('button', 'Confirm') .should('be.visible') .and('be.enabled') .click(); cy.contains(MSG_ACCOUNT_NOT_UNIQUE).should('be.visible'); }); });