# 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/booking/booking-create.spec.ts >> creates a booking with insurance and a discount
- Location: src/manager/tests/e2e/booking/booking-create.spec.ts:84: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("General"))').locator('[data-test-id=key-value-item]:has([data-test-id=key]:text-is("Discount"))').getByTestId('value-text')
Expected pattern: /^(\s*-?\s*)$/
Received string: "Rustic Sale A8OvBy"
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("General"))').locator('[data-test-id=key-value-item]:has([data-test-id=key]:text-is("Discount"))').getByTestId('value-text')
64 × locator resolved to
Rustic Sale A8OvBy
- unexpected value "Rustic Sale A8OvBy"
```
```yaml
- text: Rustic Sale A8OvBy
```
# 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 {
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 {
21 | text
22 | ? await expect(locator).toHaveText(text, { ignoreCase: true, useInnerText: true })
23 | : await expectLocatorToBeEmpty(locator);
24 | }
25 |
26 | export async function expectLocatorToBeEmpty(locator: Locator): Promise {
> 27 | await expect(locator).toHaveText(/^(\s*-?\s*)$/);
| ^ Error: expect(locator).toHaveText(expected) failed
28 | }
29 |
```