Skip to content

Commit 15ba871

Browse files
authored
feat(slide-toggle): move harness out of experimental (#17132)
1 parent 14cdd89 commit 15ba871

File tree

13 files changed

+155
-43
lines changed

13 files changed

+155
-43
lines changed
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
package(default_visibility = ["//visibility:public"])
2+
3+
load("//tools:defaults.bzl", "ng_module", "ng_test_library", "ng_web_test_suite")
4+
5+
ng_module(
6+
name = "testing",
7+
srcs = glob(
8+
["**/*.ts"],
9+
exclude = ["**/*.spec.ts"],
10+
),
11+
module_name = "@angular/material-experimental/mdc-slide-toggle/testing",
12+
deps = [
13+
"//src/cdk/coercion",
14+
"//src/cdk/testing",
15+
"//src/material/slide-toggle/testing",
16+
],
17+
)
18+
19+
ng_test_library(
20+
name = "unit_tests_lib",
21+
srcs = glob(["**/*.spec.ts"]),
22+
deps = [
23+
":testing",
24+
"//src/material-experimental/mdc-slide-toggle",
25+
"//src/material/slide-toggle/testing:harness_tests_lib",
26+
],
27+
)
28+
29+
ng_web_test_suite(
30+
name = "unit_tests",
31+
static_files = [
32+
"@npm//:node_modules/@material/switch/dist/mdc.switch.js",
33+
"@npm//:node_modules/@material/ripple/dist/mdc.ripple.js",
34+
],
35+
deps = [
36+
":unit_tests_lib",
37+
"//src/material-experimental:mdc_require_config.js",
38+
],
39+
)
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
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+
export * from './public-api';
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
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+
export * from './slide-toggle-harness';
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
import {runHarnessTests} from '@angular/material/slide-toggle/testing/shared.spec';
2+
import {MatSlideToggleModule} from '../index';
3+
import {MatSlideToggleHarness} from './slide-toggle-harness';
4+
5+
describe('MDC-based MatSlideToggleHarness', () => {
6+
runHarnessTests(MatSlideToggleModule, MatSlideToggleHarness as any);
7+
});

src/material-experimental/mdc-slide-toggle/harness/mdc-slide-toggle-harness.ts renamed to src/material-experimental/mdc-slide-toggle/testing/slide-toggle-harness.ts

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

99
import {ComponentHarness, HarnessPredicate} from '@angular/cdk/testing';
1010
import {coerceBooleanProperty} from '@angular/cdk/coercion';
11-
import {SlideToggleHarnessFilters} from './slide-toggle-harness-filters';
11+
import {SlideToggleHarnessFilters} from '@angular/material/slide-toggle/testing';
1212

1313

1414
/**
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
package(default_visibility = ["//visibility:public"])
2+
3+
load("//tools:defaults.bzl", "ng_module", "ng_test_library", "ng_web_test_suite")
4+
5+
ng_module(
6+
name = "testing",
7+
srcs = glob(
8+
["**/*.ts"],
9+
exclude = ["**/*.spec.ts"],
10+
),
11+
module_name = "@angular/material/slide-toggle/testing",
12+
deps = [
13+
"//src/cdk/coercion",
14+
"//src/cdk/testing",
15+
],
16+
)
17+
18+
ng_test_library(
19+
name = "harness_tests_lib",
20+
srcs = ["shared.spec.ts"],
21+
deps = [
22+
":testing",
23+
"//src/cdk/testing",
24+
"//src/cdk/testing/testbed",
25+
"//src/material/slide-toggle",
26+
"@npm//@angular/forms",
27+
"@npm//@angular/platform-browser",
28+
],
29+
)
30+
31+
ng_test_library(
32+
name = "unit_tests_lib",
33+
srcs = glob(
34+
["**/*.spec.ts"],
35+
exclude = ["shared.spec.ts"],
36+
),
37+
deps = [
38+
":harness_tests_lib",
39+
":testing",
40+
"//src/material/slide-toggle",
41+
],
42+
)
43+
44+
ng_web_test_suite(
45+
name = "unit_tests",
46+
deps = [":unit_tests_lib"],
47+
)
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
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+
export * from './public-api';
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
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+
export * from './slide-toggle-harness';
10+
export * from './slide-toggle-harness-filters';
Lines changed: 15 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -4,53 +4,26 @@ import {Component} from '@angular/core';
44
import {ComponentFixture, TestBed} from '@angular/core/testing';
55
import {FormControl, ReactiveFormsModule} from '@angular/forms';
66
import {MatSlideToggleModule} from '@angular/material/slide-toggle';
7-
import {MatSlideToggleModule as MatMdcSlideToggleModule} from '../index';
8-
import {MatSlideToggleHarness} from './slide-toggle-harness';
9-
import {MatSlideToggleHarness as MatMdcSlideToggleHarness} from './mdc-slide-toggle-harness';
7+
import {MatSlideToggleHarness} from '@angular/material/slide-toggle/testing/slide-toggle-harness';
108

9+
/** Shared tests to run on both the original and MDC-based slide-toggles. */
10+
export function runHarnessTests(
11+
slideToggleModule: typeof MatSlideToggleModule,
12+
slideToggleHarness: typeof MatSlideToggleHarness) {
13+
let fixture: ComponentFixture<SlideToggleHarnessTest>;
14+
let loader: HarnessLoader;
1115

12-
let fixture: ComponentFixture<SlideToggleHarnessTest>;
13-
let loader: HarnessLoader;
14-
let slideToggleHarness: typeof MatSlideToggleHarness;
15-
16-
describe('MatSlideToggleHarness', () => {
17-
describe('non-MDC-based', () => {
18-
beforeEach(async () => {
19-
await TestBed.configureTestingModule({
20-
imports: [MatSlideToggleModule, ReactiveFormsModule],
21-
declarations: [SlideToggleHarnessTest],
22-
}).compileComponents();
23-
24-
fixture = TestBed.createComponent(SlideToggleHarnessTest);
25-
fixture.detectChanges();
26-
loader = TestbedHarnessEnvironment.loader(fixture);
27-
slideToggleHarness = MatSlideToggleHarness;
28-
});
29-
30-
runTests();
31-
});
32-
33-
describe('MDC-based', () => {
34-
beforeEach(async () => {
35-
await TestBed.configureTestingModule({
36-
imports: [MatMdcSlideToggleModule, ReactiveFormsModule],
37-
declarations: [SlideToggleHarnessTest],
38-
}).compileComponents();
39-
40-
fixture = TestBed.createComponent(SlideToggleHarnessTest);
41-
fixture.detectChanges();
42-
loader = TestbedHarnessEnvironment.loader(fixture);
43-
// Public APIs are the same as MatSlideToggleHarness, but cast is necessary because of
44-
// different private fields.
45-
slideToggleHarness = MatMdcSlideToggleHarness as any;
46-
});
16+
beforeEach(async () => {
17+
await TestBed.configureTestingModule({
18+
imports: [slideToggleModule, ReactiveFormsModule],
19+
declarations: [SlideToggleHarnessTest],
20+
}).compileComponents();
4721

48-
runTests();
22+
fixture = TestBed.createComponent(SlideToggleHarnessTest);
23+
fixture.detectChanges();
24+
loader = TestbedHarnessEnvironment.loader(fixture);
4925
});
50-
});
5126

52-
/** Shared tests to run on both the original and MDC-based slide-toggles. */
53-
function runTests() {
5427
it('should load all slide-toggle harnesses', async () => {
5528
const slideToggles = await loader.getAllHarnesses(slideToggleHarness);
5629
expect(slideToggles.length).toBe(2);

0 commit comments

Comments
 (0)