# Instructions

- Following Playwright test failed.
- Explain why, be concise, respect Playwright best practices.
- Provide a snippet of code with the fix, if possible.

# Test info

- Name: src/manager/tests/e2e/invoice/invoice-create.spec.ts >> creates a bacs auto-charged invoice
- Location: src/manager/tests/e2e/invoice/invoice-create.spec.ts:29:7

# Error details

```
Error: expect(locator).toHaveText(expected) failed

Locator: getByTestId('app-page').getByTestId('app-page-content').locator('[data-test-id=app-details-card]:has([data-test-id=title]:has-text("Payments"))').locator('.ui-data-grid').locator('[data-test-id=ui-data-grid-table]:not(.disabled):not(.loading):not(.fetching)').getByTestId('ui-data-grid-table-with-data').locator('tr').getByTestId('ui-data-grid-cell-status').first().locator('.ui-chip-content').first()
Expected pattern: /Succeeded/
Received string:  "Pending"
Timeout: 30000ms

Call log:
  - Expect "toHaveText" with timeout 30000ms
  - waiting for getByTestId('app-page').getByTestId('app-page-content').locator('[data-test-id=app-details-card]:has([data-test-id=title]:has-text("Payments"))').locator('.ui-data-grid').locator('[data-test-id=ui-data-grid-table]:not(.disabled):not(.loading):not(.fetching)').getByTestId('ui-data-grid-table-with-data').locator('tr').getByTestId('ui-data-grid-cell-status').first().locator('.ui-chip-content').first()
    64 × locator resolved to <span data-v-05eb5a8c="" class="ui-chip-content block max-w-full overflow-hidden truncate font-medium leading-none">Pending</span>
       - unexpected value "Pending"

```

```yaml
- text: Pending
```

# Test source

```ts
  1  | import { escapeRegExp } from '@/shared/utils/regex-utils';
  2  | import { expect, Locator } from '@playwright/test';
  3  | 
  4  | export async function expectMultiLocatorToHaveText(locator: Locator, text: string[] | undefined): Promise<void> {
  5  |   if (!text) {
  6  |     await expectLocatorToBeEmpty(locator);
  7  |     return;
  8  |   }
  9  | 
  10 |   const expectedValue = RegExp(text.map(escapeRegExp).join('|'));
  11 | 
  12 |   for (const element of await locator.all()) {
  13 |     await expectSingleLocatorToHaveText(element, expectedValue);
  14 |   }
  15 | }
  16 | 
  17 | export async function expectSingleLocatorToHaveText(
  18 |   locator: Locator,
  19 |   text: string | RegExp | undefined
  20 | ): Promise<void> {
  21 |   text
> 22 |     ? await expect(locator).toHaveText(text, { ignoreCase: true, useInnerText: true })
     |                             ^ Error: expect(locator).toHaveText(expected) failed
  23 |     : await expectLocatorToBeEmpty(locator);
  24 | }
  25 | 
  26 | export async function expectLocatorToBeEmpty(locator: Locator): Promise<void> {
  27 |   await expect(locator).toHaveText(/^(\s*-?\s*)$/);
  28 | }
  29 | 
```