Skip to content

Commit 518b2b6

Browse files
authored
fix(material/button): remove dependency on legacy button (#25579)
Fixes that the non-legacy button was depending on the legacy button.
1 parent 9331866 commit 518b2b6

File tree

14 files changed

+59
-62
lines changed

14 files changed

+59
-62
lines changed

src/material/button/BUILD.bazel

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,6 @@ ng_test_library(
100100
"//src/cdk/platform",
101101
"//src/cdk/testing/private",
102102
"//src/material/core",
103-
"//src/material/legacy-button",
104103
"@npm//@angular/platform-browser",
105104
],
106105
)

src/material/button/testing/BUILD.bazel

Lines changed: 21 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ ts_library(
1111
deps = [
1212
"//src/cdk/coercion",
1313
"//src/cdk/testing",
14-
"//src/material/legacy-button/testing",
1514
],
1615
)
1716

@@ -22,11 +21,30 @@ filegroup(
2221

2322
ng_test_library(
2423
name = "unit_tests_lib",
25-
srcs = glob(["**/*.spec.ts"]),
24+
srcs = glob(
25+
["**/*.spec.ts"],
26+
exclude = ["shared.spec.ts"],
27+
),
28+
deps = [
29+
":harness_tests_lib",
30+
":testing",
31+
"//src/material/button",
32+
],
33+
)
34+
35+
ng_test_library(
36+
name = "harness_tests_lib",
37+
srcs = ["shared.spec.ts"],
2638
deps = [
2739
":testing",
40+
"//src/cdk/platform",
41+
"//src/cdk/testing",
42+
"//src/cdk/testing/testbed",
2843
"//src/material/button",
29-
"//src/material/legacy-button/testing:harness_tests_lib",
44+
"//src/material/icon",
45+
"//src/material/icon/testing",
46+
"@npm//@angular/forms",
47+
"@npm//@angular/platform-browser",
3048
],
3149
)
3250

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
/**
2+
* @license
3+
* Copyright Google LLC All Rights Reserved.
4+
*
5+
* Use of this source code is governed by an MIT-style license that can be
6+
* found in the LICENSE file at https://angular.io/license
7+
*/
8+
9+
import {BaseHarnessFilters} from '@angular/cdk/testing';
10+
11+
/** A set of criteria that can be used to filter a list of button harness instances. */
12+
export interface ButtonHarnessFilters extends BaseHarnessFilters {
13+
/** Only find instances whose text matches the given value. */
14+
text?: string | RegExp;
15+
}

src/material/button/testing/button-harness.spec.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import {runHarnessTests} from '@angular/material/legacy-button/testing/shared.spec';
1+
import {runHarnessTests} from '@angular/material/button/testing/shared.spec';
22
import {MatButtonModule} from '../index';
33
import {MatButtonHarness} from './button-harness';
44

src/material/button/testing/button-harness.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ import {
1212
HarnessPredicate,
1313
} from '@angular/cdk/testing';
1414
import {coerceBooleanProperty} from '@angular/cdk/coercion';
15-
import {LegacyButtonHarnessFilters} from '@angular/material/legacy-button/testing';
15+
import {ButtonHarnessFilters} from './button-harness-filters';
1616

1717
/** Harness for interacting with a MDC-based mat-button in tests. */
1818
export class MatButtonHarness extends ContentContainerComponentHarness {
@@ -29,7 +29,7 @@ export class MatButtonHarness extends ContentContainerComponentHarness {
2929
*/
3030
static with<T extends MatButtonHarness>(
3131
this: ComponentHarnessConstructor<T>,
32-
options: LegacyButtonHarnessFilters = {},
32+
options: ButtonHarnessFilters = {},
3333
): HarnessPredicate<T> {
3434
return new HarnessPredicate(this, options).addOption('text', options.text, (harness, text) =>
3535
HarnessPredicate.stringMatches(harness.getText(), text),

src/material/button/testing/public-api.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,4 +7,4 @@
77
*/
88

99
export * from './button-harness';
10-
export {LegacyButtonHarnessFilters} from '@angular/material/legacy-button/testing';
10+
export * from './button-harness-filters';

src/material/legacy-button/testing/shared.spec.ts renamed to src/material/button/testing/shared.spec.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,15 @@ import {HarnessLoader} from '@angular/cdk/testing';
33
import {TestbedHarnessEnvironment} from '@angular/cdk/testing/testbed';
44
import {Component} from '@angular/core';
55
import {ComponentFixture, inject, TestBed} from '@angular/core/testing';
6-
import {MatLegacyButtonModule} from '@angular/material/legacy-button';
7-
import {MatLegacyButtonHarness} from '@angular/material/legacy-button/testing/button-harness';
6+
import {MatButtonModule} from '@angular/material/button';
7+
import {MatButtonHarness} from '@angular/material/button/testing/button-harness';
88
import {MatIconModule} from '@angular/material/icon';
99
import {MatIconHarness} from '@angular/material/icon/testing/icon-harness';
1010

1111
/** Shared tests to run on both the original and MDC-based buttons. */
1212
export function runHarnessTests(
13-
buttonModule: typeof MatLegacyButtonModule,
14-
buttonHarness: typeof MatLegacyButtonHarness,
13+
buttonModule: typeof MatButtonModule,
14+
buttonHarness: typeof MatButtonHarness,
1515
) {
1616
let fixture: ComponentFixture<ButtonHarnessTest>;
1717
let loader: HarnessLoader;

src/material/legacy-button/testing/BUILD.bazel

Lines changed: 2 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ ts_library(
1212
deps = [
1313
"//src/cdk/coercion",
1414
"//src/cdk/testing",
15+
"//src/material/button/testing",
1516
],
1617
)
1718

@@ -20,34 +21,17 @@ filegroup(
2021
srcs = glob(["**/*.ts"]),
2122
)
2223

23-
ng_test_library(
24-
name = "harness_tests_lib",
25-
srcs = ["shared.spec.ts"],
26-
deps = [
27-
":testing",
28-
"//src/cdk/platform",
29-
"//src/cdk/testing",
30-
"//src/cdk/testing/testbed",
31-
"//src/material/icon",
32-
"//src/material/icon/testing",
33-
"//src/material/legacy-button",
34-
"@npm//@angular/forms",
35-
"@npm//@angular/platform-browser",
36-
],
37-
)
38-
3924
ng_test_library(
4025
name = "unit_tests_lib",
4126
srcs = glob(
4227
["**/*.spec.ts"],
4328
exclude = [
4429
"**/*.e2e.spec.ts",
45-
"shared.spec.ts",
4630
],
4731
),
4832
deps = [
49-
":harness_tests_lib",
5033
":testing",
34+
"//src/material/button/testing:harness_tests_lib",
5135
"//src/material/legacy-button",
5236
],
5337
)

src/material/legacy-button/testing/button-harness-filters.ts

Lines changed: 0 additions & 19 deletions
This file was deleted.
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import {MatLegacyButtonModule} from '@angular/material/legacy-button';
2-
import {runHarnessTests} from '@angular/material/legacy-button/testing/shared.spec';
2+
import {runHarnessTests} from '@angular/material/button/testing/shared.spec';
33
import {MatLegacyButtonHarness} from './button-harness';
44

55
describe('Non-MDC-based MatLegacyButtonHarness', () => {
6-
runHarnessTests(MatLegacyButtonModule, MatLegacyButtonHarness);
6+
runHarnessTests(MatLegacyButtonModule, MatLegacyButtonHarness as any);
77
});

src/material/legacy-button/testing/button-harness.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88

99
import {ContentContainerComponentHarness, HarnessPredicate} from '@angular/cdk/testing';
1010
import {coerceBooleanProperty} from '@angular/cdk/coercion';
11-
import {LegacyButtonHarnessFilters} from './button-harness-filters';
11+
import {ButtonHarnessFilters} from '@angular/material/button/testing';
1212

1313
/**
1414
* Harness for interacting with a standard mat-button in tests.
@@ -27,7 +27,7 @@ export class MatLegacyButtonHarness extends ContentContainerComponentHarness {
2727
* @param options Options for filtering which button instances are considered a match.
2828
* @return a `HarnessPredicate` configured with the given options.
2929
*/
30-
static with(options: LegacyButtonHarnessFilters = {}): HarnessPredicate<MatLegacyButtonHarness> {
30+
static with(options: ButtonHarnessFilters = {}): HarnessPredicate<MatLegacyButtonHarness> {
3131
return new HarnessPredicate(MatLegacyButtonHarness, options).addOption(
3232
'text',
3333
options.text,

src/material/legacy-button/testing/public-api.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,4 +7,4 @@
77
*/
88

99
export {MatLegacyButtonHarness} from './button-harness';
10-
export {LegacyButtonHarnessFilters} from './button-harness-filters';
10+
export {ButtonHarnessFilters as LegacyButtonHarnessFilters} from '@angular/material/button/testing';

tools/public_api_guard/material/button-testing.md

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,15 @@
44
55
```ts
66

7+
import { BaseHarnessFilters } from '@angular/cdk/testing';
78
import { ComponentHarnessConstructor } from '@angular/cdk/testing';
89
import { ContentContainerComponentHarness } from '@angular/cdk/testing';
910
import { HarnessPredicate } from '@angular/cdk/testing';
10-
import { LegacyButtonHarnessFilters } from '@angular/material/legacy-button/testing';
1111

12-
export { LegacyButtonHarnessFilters }
12+
// @public
13+
export interface ButtonHarnessFilters extends BaseHarnessFilters {
14+
text?: string | RegExp;
15+
}
1316

1417
// @public
1518
export class MatButtonHarness extends ContentContainerComponentHarness {
@@ -23,7 +26,7 @@ export class MatButtonHarness extends ContentContainerComponentHarness {
2326
static hostSelector: string;
2427
isDisabled(): Promise<boolean>;
2528
isFocused(): Promise<boolean>;
26-
static with<T extends MatButtonHarness>(this: ComponentHarnessConstructor<T>, options?: LegacyButtonHarnessFilters): HarnessPredicate<T>;
29+
static with<T extends MatButtonHarness>(this: ComponentHarnessConstructor<T>, options?: ButtonHarnessFilters): HarnessPredicate<T>;
2730
}
2831

2932
// (No @packageDocumentation comment for this package)

tools/public_api_guard/material/legacy-button-testing.md

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,11 @@
44
55
```ts
66

7-
import { BaseHarnessFilters } from '@angular/cdk/testing';
87
import { ContentContainerComponentHarness } from '@angular/cdk/testing';
98
import { HarnessPredicate } from '@angular/cdk/testing';
9+
import { ButtonHarnessFilters as LegacyButtonHarnessFilters } from '@angular/material/button/testing';
1010

11-
// @public @deprecated
12-
export interface LegacyButtonHarnessFilters extends BaseHarnessFilters {
13-
text?: string | RegExp;
14-
}
11+
export { LegacyButtonHarnessFilters }
1512

1613
// @public @deprecated
1714
export class MatLegacyButtonHarness extends ContentContainerComponentHarness {

0 commit comments

Comments
 (0)