UNPKG

cli-testing-library

Version:

Simple and complete CLI testing utilities that encourage good testing practices.

25 lines (24 loc) 1.51 kB
import { TestInstance } from './types.js'; import * as defaultQueries from "./queries/index.js"; export type BoundFunction<T> = T extends (container: TestInstance, ...args: infer P) => infer R ? (...args: P) => R : never; export type BoundFunctions<TQueries> = TQueries extends typeof defaultQueries ? { getByText: <T extends TestInstance = TestInstance>(...args: Parameters<BoundFunction<defaultQueries.GetByText<T>>>) => ReturnType<defaultQueries.GetByText<T>>; queryByText: <T extends TestInstance = TestInstance>(...args: Parameters<BoundFunction<defaultQueries.QueryByText<T>>>) => ReturnType<defaultQueries.QueryByText<T>>; findByText: <T extends TestInstance = TestInstance>(...args: Parameters<BoundFunction<defaultQueries.FindByText<T>>>) => ReturnType<defaultQueries.FindByText<T>>; } & { [P in keyof TQueries]: BoundFunction<TQueries[P]>; } : { [P in keyof TQueries]: BoundFunction<TQueries[P]>; }; export type Query = (container: TestInstance, ...args: Array<any>) => Error | TestInstance | Array<TestInstance> | Promise<Array<TestInstance>> | Promise<TestInstance> | null; export interface Queries { [T: string]: Query; } /** * @param instance * @param queries object of functions * @param initialValue for reducer * @returns returns object of functions bound to container */ declare function getQueriesForElement<T extends Queries = typeof defaultQueries>(instance: TestInstance, queries?: T, initialValue?: {}): BoundFunctions<T>; export { getQueriesForElement };