Skip to content

Commit ccd7b45

Browse files
committed
feat(select,input,form-field): move test harnesses out of experimental
Moves the test harnesses for the `select`, `input` and `form-field` packages out of `material-experimental`.
1 parent af6c13f commit ccd7b45

32 files changed

+168
-56
lines changed

.github/CODEOWNERS

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -89,8 +89,6 @@
8989

9090
# Material experimental package
9191
/src/material-experimental/* @jelbourn
92-
/src/material-experimental/input/** @devversion
93-
/src/material-experimental/form-field/** @devversion
9492
/src/material-experimental/mdc-autocomplete/** @crisbeto
9593
/src/material-experimental/mdc-button/** @andrewseguin
9694
/src/material-experimental/mdc-card/** @mmalerba
@@ -112,7 +110,6 @@
112110
/src/material-experimental/mdc-theming/** @mmalerba
113111
/src/material-experimental/mdc-typography/** @mmalerba
114112
/src/material-experimental/popover-edit/** @kseamon @andrewseguin
115-
/src/material-experimental/select/** @crisbeto
116113

117114
# CDK experimental package
118115
/src/cdk-experimental/* @jelbourn

src/material-experimental/config.bzl

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,4 @@
11
entryPoints = [
2-
"form-field/testing",
3-
"form-field/testing/control",
4-
"input/testing",
52
"mdc-autocomplete",
63
"mdc-button",
74
"mdc-button/testing",
@@ -22,14 +19,13 @@ entryPoints = [
2219
"mdc-slider",
2320
"mdc-tabs",
2421
"popover-edit",
25-
"select/testing",
2622
]
2723

2824
# List of all non-testing entry-points of the Angular material-experimental package.
2925
MATERIAL_EXPERIMENTAL_ENTRYPOINTS = [
3026
ep
3127
for ep in entryPoints
32-
if not ep.endswith("/testing")
28+
if not "/testing" in ep
3329
]
3430

3531
# List of all testing entry-points of the Angular material-experimental package.

src/material/config.bzl

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,13 +53,17 @@ entryPoints = [
5353
"toolbar",
5454
"tooltip",
5555
"tree",
56+
"form-field/testing",
57+
"form-field/testing/control",
58+
"input/testing",
59+
"select/testing",
5660
]
5761

5862
# List of all non-testing entry-points of the Angular Material package.
5963
MATERIAL_ENTRYPOINTS = [
6064
ep
6165
for ep in entryPoints
62-
if not ep.endswith("/testing")
66+
if not "/testing" in ep
6367
]
6468

6569
# List of all testing entry-points of the Angular Material package.

src/material-experimental/form-field/testing/BUILD.bazel renamed to src/material/form-field/testing/BUILD.bazel

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,15 +8,20 @@ ts_library(
88
["**/*.ts"],
99
exclude = ["**/*.spec.ts"],
1010
),
11-
module_name = "@angular/material-experimental/form-field/testing",
11+
module_name = "@angular/material/form-field/testing",
1212
deps = [
1313
"//src/cdk/testing",
14-
"//src/material-experimental/form-field/testing/control",
15-
"//src/material-experimental/input/testing",
16-
"//src/material-experimental/select/testing",
14+
"//src/material/form-field/testing/control",
15+
"//src/material/input/testing",
16+
"//src/material/select/testing",
1717
],
1818
)
1919

20+
filegroup(
21+
name = "source-files",
22+
srcs = glob(["**/*.ts"]),
23+
)
24+
2025
ng_test_library(
2126
name = "harness_tests_lib",
2227
srcs = ["shared.spec.ts"],
@@ -39,12 +44,12 @@ ng_test_library(
3944
deps = [
4045
":harness_tests_lib",
4146
":testing",
42-
"//src/material-experimental/input/testing",
43-
"//src/material-experimental/select/testing",
4447
"//src/material/autocomplete",
4548
"//src/material/form-field",
4649
"//src/material/input",
50+
"//src/material/input/testing",
4751
"//src/material/select",
52+
"//src/material/select/testing",
4853
],
4954
)
5055

src/material-experimental/form-field/testing/control/BUILD.bazel renamed to src/material/form-field/testing/control/BUILD.bazel

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,11 @@ load("//tools:defaults.bzl", "ts_library")
55
ts_library(
66
name = "control",
77
srcs = glob(["**/*.ts"]),
8-
module_name = "@angular/material-experimental/form-field/testing/control",
8+
module_name = "@angular/material/form-field/testing/control",
99
deps = ["//src/cdk/testing"],
1010
)
11+
12+
filegroup(
13+
name = "source-files",
14+
srcs = glob(["**/*.ts"]),
15+
)

src/material-experimental/form-field/testing/form-field-harness-filters.ts renamed to src/material/form-field/testing/form-field-harness-filters.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,4 +8,7 @@
88

99
import {BaseHarnessFilters} from '@angular/cdk/testing';
1010

11-
export interface FormFieldHarnessFilters extends BaseHarnessFilters {}
11+
export interface FormFieldHarnessFilters extends BaseHarnessFilters {
12+
floatingLabelText?: string | RegExp;
13+
hasErrors?: boolean;
14+
}

src/material-experimental/form-field/testing/form-field-harness.spec.ts renamed to src/material/form-field/testing/form-field-harness.spec.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
import {MatInputHarness} from '@angular/material-experimental/input/testing';
2-
import {MatSelectHarness} from '@angular/material-experimental/select/testing';
1+
import {MatInputHarness} from '@angular/material/input/testing';
2+
import {MatSelectHarness} from '@angular/material/select/testing';
33
import {MatAutocompleteModule} from '@angular/material/autocomplete';
44
import {MatFormFieldModule} from '@angular/material/form-field';
55
import {MatInputModule} from '@angular/material/input';

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

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,9 @@ import {
1313
HarnessQuery,
1414
TestElement
1515
} from '@angular/cdk/testing';
16-
import {
17-
MatFormFieldControlHarness
18-
} from '@angular/material-experimental/form-field/testing/control';
19-
import {MatInputHarness} from '@angular/material-experimental/input/testing';
20-
import {MatSelectHarness} from '@angular/material-experimental/select/testing';
16+
import {MatFormFieldControlHarness} from '@angular/material/form-field/testing/control';
17+
import {MatInputHarness} from '@angular/material/input/testing';
18+
import {MatSelectHarness} from '@angular/material/select/testing';
2119
import {FormFieldHarnessFilters} from './form-field-harness-filters';
2220

2321
// TODO(devversion): support datepicker harness once developed (COMP-203).
@@ -37,14 +35,18 @@ export class MatFormFieldHarness extends ComponentHarness {
3735
* @return a `HarnessPredicate` configured with the given options.
3836
*/
3937
static with(options: FormFieldHarnessFilters = {}): HarnessPredicate<MatFormFieldHarness> {
40-
return new HarnessPredicate(MatFormFieldHarness, options);
38+
return new HarnessPredicate(MatFormFieldHarness, options)
39+
.addOption('floatingLabelText', options.floatingLabelText, async (harness, text) =>
40+
HarnessPredicate.stringMatches(await harness.getLabel(), text))
41+
.addOption('hasErrors', options.hasErrors, async (harness, hasErrors) =>
42+
await harness.hasErrors() === hasErrors);
4143
}
4244

4345
private _prefixContainer = this.locatorForOptional('.mat-form-field-prefix');
4446
private _suffixContainer = this.locatorForOptional('.mat-form-field-suffix');
4547
private _label = this.locatorForOptional('.mat-form-field-label');
4648
private _errors = this.locatorForAll('.mat-error');
47-
private _hints = this.locatorForAll('mat-hint,.mat-hint');
49+
private _hints = this.locatorForAll('mat-hint, .mat-hint');
4850

4951
private _inputControl = this.locatorForOptional(MatInputHarness);
5052
private _selectControl = this.locatorForOptional(MatSelectHarness);
@@ -117,6 +119,11 @@ export class MatFormFieldHarness extends ComponentHarness {
117119
return (await this.host()).hasClass('mat-form-field-can-float');
118120
}
119121

122+
/** Whether the form-field has errors. */
123+
async hasErrors(): Promise<boolean> {
124+
return (await this.getErrorMessages()).length > 0;
125+
}
126+
120127
/** Whether the label is currently floating. */
121128
async isLabelFloating(): Promise<boolean> {
122129
return (await this.host()).hasClass('mat-form-field-should-float');

0 commit comments

Comments
 (0)