diff --git a/playwright-tests/business-logic/data/ClientData.ts b/playwright-tests/business-logic/data/ClientData.ts index c52a01a0..e2854959 100644 --- a/playwright-tests/business-logic/data/ClientData.ts +++ b/playwright-tests/business-logic/data/ClientData.ts @@ -336,8 +336,38 @@ export default class ClientData { } static getClientByTag(clientTag: string) { - return [...essentialClients, ...advancedClients].find( - client => client.clientTag === clientTag + return this.resolveClientForTest(clientTag); + } + + static getClientByAccountNumber(accountNumber: string) { + const advancedMatch = advancedClients.find(client => client.accountNumber === accountNumber); + if (advancedMatch) { + return advancedMatch; + } + return essentialClients.find(client => client.accountNumber === accountNumber); + } + + static resolveClientForTest(clientTag: string, accountNumber?: string): IClient | undefined { + const normalizedTag = clientTag.toLowerCase(); + + if (accountNumber) { + const clientByAccount = this.getClientByAccountNumber(accountNumber); + if (clientByAccount?.clientTag.toLowerCase() === normalizedTag) { + return clientByAccount; + } + } + + const essentialMatch = essentialClients.find( + client => client.clientTag.toLowerCase() === normalizedTag ); + const advancedMatch = advancedClients.find( + client => client.clientTag.toLowerCase() === normalizedTag + ); + + if (essentialMatch && advancedMatch) { + return essentialMatch; + } + + return advancedMatch ?? essentialMatch; } } \ No newline at end of file