diff --git a/types/__tests__/type-tests.ts b/types/__tests__/type-tests.ts index ad47e73d..7a3212cf 100644 --- a/types/__tests__/type-tests.ts +++ b/types/__tests__/type-tests.ts @@ -254,6 +254,12 @@ export async function testWithin() { await container.findByRole('button', {name: /click me/i}) container.getByRole('button', {name: /click me/i}) + + let withinQueries = within(document.body) + withinQueries = within(document.body) + withinQueries.getByRole('button', {name: /click me/i}) + withinQueries = within(document.body) + withinQueries.getByRole('button', {name: /click me/i}) } /* diff --git a/types/get-queries-for-element.d.ts b/types/get-queries-for-element.d.ts index 868d6d2a..33d13de8 100644 --- a/types/get-queries-for-element.d.ts +++ b/types/get-queries-for-element.d.ts @@ -175,7 +175,8 @@ export interface Queries { [T: string]: Query } -export function getQueriesForElement( - element: HTMLElement, - queriesToBind?: T, -): BoundFunctions +export function getQueriesForElement< + QueriesToBind extends Queries = typeof queries, + // Extra type parameter required for reassignment. + T extends QueriesToBind = QueriesToBind, +>(element: HTMLElement, queriesToBind?: T): BoundFunctions