From 7ef238c060e2e2eb577f704e49fa982f4790def1 Mon Sep 17 00:00:00 2001 From: Hiroshi Ogawa Date: Tue, 4 Feb 2025 22:52:58 +0900 Subject: [PATCH] fix(browser): fix `toHaveClass` typing (#7383) --- packages/browser/jest-dom.d.ts | 3 +-- test/browser/test/dom.test.ts | 14 ++++++++++++++ 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/packages/browser/jest-dom.d.ts b/packages/browser/jest-dom.d.ts index c4316db82..d44fd8196 100644 --- a/packages/browser/jest-dom.d.ts +++ b/packages/browser/jest-dom.d.ts @@ -260,8 +260,7 @@ declare namespace matchers { * @see * [testing-library/jest-dom#tohaveclass](https://github.com/testing-library/jest-dom#tohaveclass) */ - toHaveClass(classNames: string, options?: {exact: boolean}): R - toHaveClass(...classNames: Array): R + toHaveClass(...classNames: (string | RegExp)[] | [string, options?: {exact: boolean}]): R /** * @description * This allows you to check whether the given form element has the specified displayed value (the one the diff --git a/test/browser/test/dom.test.ts b/test/browser/test/dom.test.ts index 36375ecae..69d36b76f 100644 --- a/test/browser/test/dom.test.ts +++ b/test/browser/test/dom.test.ts @@ -31,6 +31,20 @@ describe('dom related activity', () => { expect(screenshotPath).toMatch( /__screenshots__\/dom.test.ts\/dom-related-activity-renders-div-1.png/, ) + + // test typing + if (0) { + await expect.element(div).toHaveClass('x', { exact: true }) + await expect.element(div).toHaveClass('x', 'y') + await expect.element(div).toHaveClass('x', /y/) + await expect.element(div).toHaveClass(/x/, 'y') + await expect.element(div).toHaveClass('x', /y/, 'z') + await expect.element(div).toHaveClass(/x/, 'y', /z/) + // @ts-expect-error error + await expect.element(div).toHaveClass('x', { exact: 1234 }) + // @ts-expect-error error + await expect.element(div).toHaveClass('x', 1234) + } }) test('resolves base64 screenshot', async () => { -- 2.51.2