Skip to content

Commit 6c3c040

Browse files
committed
fix lint and api goldens
1 parent c5f4af1 commit 6c3c040

File tree

3 files changed

+23
-24
lines changed

3 files changed

+23
-24
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
"dev-app": "ibazel run //src/dev-app:devserver",
2121
"test": "bazel test //src/... --test_tag_filters=-e2e,-browser:firefox-local --build_tag_filters=-browser:firefox-local --build_tests_only",
2222
"test-firefox": "bazel test //src/... --test_tag_filters=-e2e,-browser:chromium-local --build_tag_filters=-browser:chromium-local --build_tests_only",
23-
"lint": "gulp lint && yarn -s bazel:format-lint",
23+
"lint": "yarn -s tslint && yarn -s bazel:format-lint && yarn -s ownerslint",
2424
"e2e": "bazel test //src/... --test_tag_filters=e2e",
2525
"deploy": "echo 'Not supported yet. Tracked with COMP-230'",
2626
"webdriver-manager": "webdriver-manager",

src/material-experimental/form-field/testing/form-field-harness.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,9 @@ import {
1313
HarnessQuery,
1414
TestElement
1515
} from '@angular/cdk/testing';
16-
import {MatFormFieldControlHarness} from '@angular/material-experimental/form-field/testing/control';
1716
import {MatInputHarness} from '@angular/material-experimental/input/testing';
1817
import {MatSelectHarness} from '@angular/material-experimental/select/testing';
18+
import {MatFormFieldControlHarness} from './control';
1919
import {FormFieldHarnessFilters} from './form-field-harness-filters';
2020

2121
// TODO(devversion): support datepicker harness once developed (COMP-203).

tools/public_api_guard/cdk/testing.d.ts

Lines changed: 21 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,9 @@ export declare abstract class ComponentHarness {
1515
protected documentRootLocatorFactory(): LocatorFactory;
1616
protected forceStabilize(): Promise<void>;
1717
host(): Promise<TestElement>;
18-
protected locatorFor(selector: string): AsyncFactoryFn<TestElement>;
19-
protected locatorFor<T extends ComponentHarness>(harnessType: ComponentHarnessConstructor<T> | HarnessPredicate<T>): AsyncFactoryFn<T>;
20-
protected locatorForAll(selector: string): AsyncFactoryFn<TestElement[]>;
21-
protected locatorForAll<T extends ComponentHarness>(harnessType: ComponentHarnessConstructor<T> | HarnessPredicate<T>): AsyncFactoryFn<T[]>;
22-
protected locatorForOptional(selector: string): AsyncFactoryFn<TestElement | null>;
23-
protected locatorForOptional<T extends ComponentHarness>(harnessType: ComponentHarnessConstructor<T> | HarnessPredicate<T>): AsyncFactoryFn<T | null>;
18+
protected locatorFor<T extends (HarnessQuery<any> | string)[]>(...queries: T): AsyncFactoryFn<LocatorFnResult<T>>;
19+
protected locatorForAll<T extends (HarnessQuery<any> | string)[]>(...queries: T): AsyncFactoryFn<LocatorFnResult<T>[]>;
20+
protected locatorForOptional<T extends (HarnessQuery<any> | string)[]>(...queries: T): AsyncFactoryFn<LocatorFnResult<T> | null>;
2421
protected waitForTasksOutsideAngular(): Promise<void>;
2522
}
2623

@@ -39,28 +36,25 @@ export declare abstract class HarnessEnvironment<E> implements HarnessLoader, Lo
3936
documentRootLocatorFactory(): LocatorFactory;
4037
abstract forceStabilize(): Promise<void>;
4138
getAllChildLoaders(selector: string): Promise<HarnessLoader[]>;
42-
getAllHarnesses<T extends ComponentHarness>(harnessType: ComponentHarnessConstructor<T> | HarnessPredicate<T>): Promise<T[]>;
39+
getAllHarnesses<T extends ComponentHarness>(query: HarnessQuery<T>): Promise<T[]>;
4340
protected abstract getAllRawElements(selector: string): Promise<E[]>;
4441
getChildLoader(selector: string): Promise<HarnessLoader>;
4542
protected abstract getDocumentRoot(): E;
46-
getHarness<T extends ComponentHarness>(harnessType: ComponentHarnessConstructor<T> | HarnessPredicate<T>): Promise<T>;
43+
getHarness<T extends ComponentHarness>(query: HarnessQuery<T>): Promise<T>;
4744
harnessLoaderFor(selector: string): Promise<HarnessLoader>;
4845
harnessLoaderForAll(selector: string): Promise<HarnessLoader[]>;
4946
harnessLoaderForOptional(selector: string): Promise<HarnessLoader | null>;
50-
locatorFor(selector: string): AsyncFactoryFn<TestElement>;
51-
locatorFor<T extends ComponentHarness>(harnessType: ComponentHarnessConstructor<T> | HarnessPredicate<T>): AsyncFactoryFn<T>;
52-
locatorForAll(selector: string): AsyncFactoryFn<TestElement[]>;
53-
locatorForAll<T extends ComponentHarness>(harnessType: ComponentHarnessConstructor<T> | HarnessPredicate<T>): AsyncFactoryFn<T[]>;
54-
locatorForOptional(selector: string): AsyncFactoryFn<TestElement | null>;
55-
locatorForOptional<T extends ComponentHarness>(harnessType: ComponentHarnessConstructor<T> | HarnessPredicate<T>): AsyncFactoryFn<T | null>;
47+
locatorFor<T extends (HarnessQuery<any> | string)[]>(...queries: T): AsyncFactoryFn<LocatorFnResult<T>>;
48+
locatorForAll<T extends (HarnessQuery<any> | string)[]>(...queries: T): AsyncFactoryFn<LocatorFnResult<T>[]>;
49+
locatorForOptional<T extends (HarnessQuery<any> | string)[]>(...queries: T): AsyncFactoryFn<LocatorFnResult<T> | null>;
5650
abstract waitForTasksOutsideAngular(): Promise<void>;
5751
}
5852

5953
export interface HarnessLoader {
6054
getAllChildLoaders(selector: string): Promise<HarnessLoader[]>;
61-
getAllHarnesses<T extends ComponentHarness>(harnessType: ComponentHarnessConstructor<T> | HarnessPredicate<T>): Promise<T[]>;
55+
getAllHarnesses<T extends ComponentHarness>(query: HarnessQuery<T>): Promise<T[]>;
6256
getChildLoader(selector: string): Promise<HarnessLoader>;
63-
getHarness<T extends ComponentHarness>(harnessType: ComponentHarnessConstructor<T> | HarnessPredicate<T>): Promise<T>;
57+
getHarness<T extends ComponentHarness>(query: HarnessQuery<T>): Promise<T>;
6458
}
6559

6660
export declare class HarnessPredicate<T extends ComponentHarness> {
@@ -75,22 +69,27 @@ export declare class HarnessPredicate<T extends ComponentHarness> {
7569
static stringMatches(s: string | Promise<string>, pattern: string | RegExp): Promise<boolean>;
7670
}
7771

72+
export declare type HarnessQuery<T extends ComponentHarness> = ComponentHarnessConstructor<T> | HarnessPredicate<T>;
73+
7874
export interface LocatorFactory {
7975
rootElement: TestElement;
8076
documentRootLocatorFactory(): LocatorFactory;
8177
forceStabilize(): Promise<void>;
8278
harnessLoaderFor(selector: string): Promise<HarnessLoader>;
8379
harnessLoaderForAll(selector: string): Promise<HarnessLoader[]>;
8480
harnessLoaderForOptional(selector: string): Promise<HarnessLoader | null>;
85-
locatorFor(selector: string): AsyncFactoryFn<TestElement>;
86-
locatorFor<T extends ComponentHarness>(harnessType: ComponentHarnessConstructor<T> | HarnessPredicate<T>): AsyncFactoryFn<T>;
87-
locatorForAll(selector: string): AsyncFactoryFn<TestElement[]>;
88-
locatorForAll<T extends ComponentHarness>(harnessType: ComponentHarnessConstructor<T> | HarnessPredicate<T>): AsyncFactoryFn<T[]>;
89-
locatorForOptional(selector: string): AsyncFactoryFn<TestElement | null>;
90-
locatorForOptional<T extends ComponentHarness>(harnessType: ComponentHarnessConstructor<T> | HarnessPredicate<T>): AsyncFactoryFn<T | null>;
81+
locatorFor<T extends (HarnessQuery<any> | string)[]>(...queries: T): AsyncFactoryFn<LocatorFnResult<T>>;
82+
locatorForAll<T extends (HarnessQuery<any> | string)[]>(...queries: T): AsyncFactoryFn<LocatorFnResult<T>[]>;
83+
locatorForOptional<T extends (HarnessQuery<any> | string)[]>(...queries: T): AsyncFactoryFn<LocatorFnResult<T> | null>;
9184
waitForTasksOutsideAngular(): Promise<void>;
9285
}
9386

87+
export declare type LocatorFnResult<T extends (HarnessQuery<any> | string)[]> = {
88+
[I in keyof T]: T[I] extends new (...args: any[]) => infer C ? C : T[I] extends {
89+
harnessType: new (...args: any[]) => infer C;
90+
} ? C : T[I] extends string ? TestElement : never;
91+
}[number];
92+
9493
export interface TestElement {
9594
blur(): Promise<void>;
9695
clear(): Promise<void>;

0 commit comments

Comments
 (0)