Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 12 additions & 12 deletions src/cdk/testing/component-harness.ts
Original file line number Diff line number Diff line change
Expand Up @@ -137,8 +137,8 @@ export interface LocatorFactory {
* - `await lf.locatorFor('div', DivHarness)()` gets a `TestElement` instance for `#d1`
* - `await lf.locatorFor('span')()` throws because the `Promise` rejects.
*/
locatorFor<T extends (HarnessQuery<any> | string)[]>(...queries: T):
AsyncFactoryFn<LocatorFnResult<T>>;
locatorFor<T extends (HarnessQuery<any> | string)>(...queries: [T, ...T[]]):
AsyncFactoryFn<LocatorFnResult<T[]>>;

/**
* Creates an asynchronous locator function that can be used to find a `ComponentHarness` instance
Expand All @@ -161,8 +161,8 @@ export interface LocatorFactory {
* - `await lf.locatorForOptional('div', DivHarness)()` gets a `TestElement` instance for `#d1`
* - `await lf.locatorForOptional('span')()` gets `null`.
*/
locatorForOptional<T extends (HarnessQuery<any> | string)[]>(...queries: T):
AsyncFactoryFn<LocatorFnResult<T> | null>;
locatorForOptional<T extends (HarnessQuery<any> | string)>(...queries: [T, ...T[]]):
AsyncFactoryFn<LocatorFnResult<T[]> | null>;

/**
* Creates an asynchronous locator function that can be used to find `ComponentHarness` instances
Expand Down Expand Up @@ -200,8 +200,8 @@ export interface LocatorFactory {
* ]`
* - `await lf.locatorForAll('span')()` gets `[]`.
*/
locatorForAll<T extends (HarnessQuery<any> | string)[]>(...queries: T):
AsyncFactoryFn<LocatorFnResult<T>[]>;
locatorForAll<T extends (HarnessQuery<any> | string)>(...queries: [T, ...T[]]):
AsyncFactoryFn<LocatorFnResult<T[]>[]>;

/** @return A `HarnessLoader` rooted at the root element of this `LocatorFactory`. */
rootHarnessLoader(): Promise<HarnessLoader>;
Expand Down Expand Up @@ -286,8 +286,8 @@ export abstract class ComponentHarness {
* - `await ch.locatorFor('div', DivHarness)()` gets a `TestElement` instance for `#d1`
* - `await ch.locatorFor('span')()` throws because the `Promise` rejects.
*/
protected locatorFor<T extends (HarnessQuery<any> | string)[]>(...queries: T):
AsyncFactoryFn<LocatorFnResult<T>> {
protected locatorFor<T extends (HarnessQuery<any> | string)>(...queries: [T, ...T[]]):
AsyncFactoryFn<LocatorFnResult<T[]>> {
return this.locatorFactory.locatorFor(...queries);
}

Expand All @@ -312,8 +312,8 @@ export abstract class ComponentHarness {
* - `await ch.locatorForOptional('div', DivHarness)()` gets a `TestElement` instance for `#d1`
* - `await ch.locatorForOptional('span')()` gets `null`.
*/
protected locatorForOptional<T extends (HarnessQuery<any> | string)[]>(...queries: T):
AsyncFactoryFn<LocatorFnResult<T> | null> {
protected locatorForOptional<T extends (HarnessQuery<any> | string)>(...queries: [T, ...T[]]):
AsyncFactoryFn<LocatorFnResult<T[]> | null> {
return this.locatorFactory.locatorForOptional(...queries);
}

Expand Down Expand Up @@ -353,8 +353,8 @@ export abstract class ComponentHarness {
* ]`
* - `await ch.locatorForAll('span')()` gets `[]`.
*/
protected locatorForAll<T extends (HarnessQuery<any> | string)[]>(...queries: T):
AsyncFactoryFn<LocatorFnResult<T>[]> {
protected locatorForAll<T extends (HarnessQuery<any> | string)>(...queries: [T, ...T[]]):
AsyncFactoryFn<LocatorFnResult<T[]>[]> {
return this.locatorFactory.locatorForAll(...queries);
}

Expand Down
12 changes: 6 additions & 6 deletions src/cdk/testing/harness-environment.ts
Original file line number Diff line number Diff line change
Expand Up @@ -57,22 +57,22 @@ export abstract class HarnessEnvironment<E> implements HarnessLoader, LocatorFac
}

// Implemented as part of the `LocatorFactory` interface.
locatorFor<T extends (HarnessQuery<any> | string)[]>(...queries: T):
AsyncFactoryFn<LocatorFnResult<T>> {
locatorFor<T extends (HarnessQuery<any> | string)>(...queries: [T, ...T[]]):
AsyncFactoryFn<LocatorFnResult<T[]>> {
return () => _assertResultFound(
this._getAllHarnessesAndTestElements(queries),
_getDescriptionForLocatorForQueries(queries));
}

// Implemented as part of the `LocatorFactory` interface.
locatorForOptional<T extends (HarnessQuery<any> | string)[]>(...queries: T):
AsyncFactoryFn<LocatorFnResult<T> | null> {
locatorForOptional<T extends (HarnessQuery<any> | string)>(...queries: [T, ...T[]]):
AsyncFactoryFn<LocatorFnResult<T[]> | null> {
return async () => (await this._getAllHarnessesAndTestElements(queries))[0] || null;
}

// Implemented as part of the `LocatorFactory` interface.
locatorForAll<T extends (HarnessQuery<any> | string)[]>(...queries: T):
AsyncFactoryFn<LocatorFnResult<T>[]> {
locatorForAll<T extends (HarnessQuery<any> | string)>(...queries: [T, ...T[]]):
AsyncFactoryFn<LocatorFnResult<T[]>[]> {
return () => this._getAllHarnessesAndTestElements(queries);
}

Expand Down
18 changes: 9 additions & 9 deletions tools/public_api_guard/cdk/testing.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,9 +33,9 @@ export abstract class ComponentHarness {
host(): Promise<TestElement>;
// (undocumented)
protected readonly locatorFactory: LocatorFactory;
protected locatorFor<T extends (HarnessQuery<any> | string)[]>(...queries: T): AsyncFactoryFn<LocatorFnResult<T>>;
protected locatorForAll<T extends (HarnessQuery<any> | string)[]>(...queries: T): AsyncFactoryFn<LocatorFnResult<T>[]>;
protected locatorForOptional<T extends (HarnessQuery<any> | string)[]>(...queries: T): AsyncFactoryFn<LocatorFnResult<T> | null>;
protected locatorFor<T extends (HarnessQuery<any> | string)>(...queries: [T, ...T[]]): AsyncFactoryFn<LocatorFnResult<T[]>>;
protected locatorForAll<T extends (HarnessQuery<any> | string)>(...queries: [T, ...T[]]): AsyncFactoryFn<LocatorFnResult<T[]>[]>;
protected locatorForOptional<T extends (HarnessQuery<any> | string)>(...queries: [T, ...T[]]): AsyncFactoryFn<LocatorFnResult<T[]> | null>;
protected waitForTasksOutsideAngular(): Promise<void>;
}

Expand Down Expand Up @@ -109,11 +109,11 @@ export abstract class HarnessEnvironment<E> implements HarnessLoader, LocatorFac
// (undocumented)
harnessLoaderForOptional(selector: string): Promise<HarnessLoader | null>;
// (undocumented)
locatorFor<T extends (HarnessQuery<any> | string)[]>(...queries: T): AsyncFactoryFn<LocatorFnResult<T>>;
locatorFor<T extends (HarnessQuery<any> | string)>(...queries: [T, ...T[]]): AsyncFactoryFn<LocatorFnResult<T[]>>;
// (undocumented)
locatorForAll<T extends (HarnessQuery<any> | string)[]>(...queries: T): AsyncFactoryFn<LocatorFnResult<T>[]>;
locatorForAll<T extends (HarnessQuery<any> | string)>(...queries: [T, ...T[]]): AsyncFactoryFn<LocatorFnResult<T[]>[]>;
// (undocumented)
locatorForOptional<T extends (HarnessQuery<any> | string)[]>(...queries: T): AsyncFactoryFn<LocatorFnResult<T> | null>;
locatorForOptional<T extends (HarnessQuery<any> | string)>(...queries: [T, ...T[]]): AsyncFactoryFn<LocatorFnResult<T[]> | null>;
// (undocumented)
protected rawRootElement: E;
// (undocumented)
Expand Down Expand Up @@ -156,9 +156,9 @@ export interface LocatorFactory {
harnessLoaderFor(selector: string): Promise<HarnessLoader>;
harnessLoaderForAll(selector: string): Promise<HarnessLoader[]>;
harnessLoaderForOptional(selector: string): Promise<HarnessLoader | null>;
locatorFor<T extends (HarnessQuery<any> | string)[]>(...queries: T): AsyncFactoryFn<LocatorFnResult<T>>;
locatorForAll<T extends (HarnessQuery<any> | string)[]>(...queries: T): AsyncFactoryFn<LocatorFnResult<T>[]>;
locatorForOptional<T extends (HarnessQuery<any> | string)[]>(...queries: T): AsyncFactoryFn<LocatorFnResult<T> | null>;
locatorFor<T extends (HarnessQuery<any> | string)>(...queries: [T, ...T[]]): AsyncFactoryFn<LocatorFnResult<T[]>>;
locatorForAll<T extends (HarnessQuery<any> | string)>(...queries: [T, ...T[]]): AsyncFactoryFn<LocatorFnResult<T[]>[]>;
locatorForOptional<T extends (HarnessQuery<any> | string)>(...queries: [T, ...T[]]): AsyncFactoryFn<LocatorFnResult<T[]> | null>;
rootElement: TestElement;
rootHarnessLoader(): Promise<HarnessLoader>;
waitForTasksOutsideAngular(): Promise<void>;
Expand Down