diff --git a/packages/playwright/src/matchers/toEqual.ts b/packages/playwright/src/matchers/toEqual.ts index bb0f4e147e..e19652829d 100644 --- a/packages/playwright/src/matchers/toEqual.ts +++ b/packages/playwright/src/matchers/toEqual.ts @@ -59,6 +59,21 @@ export async function toEqual( if (pass) { printedExpected = `Expected: not ${this.utils.printExpected(expected)}`; printedReceived = `Received: ${this.utils.printReceived(received)}`; + } else if (Array.isArray(expected) && Array.isArray(received)) { + const normalizedExpected = expected.map((exp, index) => { + const rec = received[index]; + if (exp instanceof RegExp) + return exp.test(rec) ? rec : exp; + + return exp; + }); + printedDiff = this.utils.printDiffOrStringify( + normalizedExpected, + received, + EXPECTED_LABEL, + RECEIVED_LABEL, + false, + ); } else { printedDiff = this.utils.printDiffOrStringify( expected,