diff --git a/src/material-experimental/mdc-slide-toggle/BUILD.bazel b/src/material-experimental/mdc-slide-toggle/BUILD.bazel index d12c3d848b5d..1909a1802535 100644 --- a/src/material-experimental/mdc-slide-toggle/BUILD.bazel +++ b/src/material-experimental/mdc-slide-toggle/BUILD.bazel @@ -2,7 +2,7 @@ package(default_visibility = ["//visibility:public"]) load("@io_bazel_rules_sass//:defs.bzl", "sass_binary", "sass_library") load("//src/e2e-app:test_suite.bzl", "e2e_test_suite") -load("//tools:defaults.bzl", "ng_e2e_test_library", "ng_module", "ng_test_library", "ng_web_test_suite", "ts_library") +load("//tools:defaults.bzl", "ng_e2e_test_library", "ng_module", "ng_test_library", "ng_web_test_suite") ng_module( name = "mdc-slide-toggle", @@ -28,18 +28,6 @@ ng_module( ], ) -ts_library( - name = "harness", - srcs = glob( - ["harness/**/*.ts"], - exclude = ["**/*.spec.ts"], - ), - deps = [ - "//src/cdk/coercion", - "//src/cdk/testing", - ], -) - sass_library( name = "mdc_slide_toggle_scss_lib", srcs = glob(["**/_*.scss"]), @@ -68,11 +56,9 @@ ng_test_library( exclude = ["**/*.e2e.spec.ts"], ), deps = [ - ":harness", ":mdc-slide-toggle", "//src/cdk/bidi", "//src/cdk/testing", - "//src/cdk/testing/testbed", "//src/material/slide-toggle", "@npm//@angular/forms", "@npm//@angular/platform-browser", diff --git a/src/material-experimental/mdc-slider/BUILD.bazel b/src/material-experimental/mdc-slider/BUILD.bazel index e7de36cab4ed..d182f5853bac 100644 --- a/src/material-experimental/mdc-slider/BUILD.bazel +++ b/src/material-experimental/mdc-slider/BUILD.bazel @@ -69,7 +69,6 @@ ng_web_test_suite( deps = [ ":slider_tests_lib", "//src/material-experimental:mdc_require_config.js", - "//src/material-experimental/mdc-slider/harness:tests_lib", ], ) diff --git a/src/material-experimental/mdc-slider/harness/BUILD.bazel b/src/material-experimental/mdc-slider/harness/BUILD.bazel deleted file mode 100644 index f9d39239d623..000000000000 --- a/src/material-experimental/mdc-slider/harness/BUILD.bazel +++ /dev/null @@ -1,26 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load("//tools:defaults.bzl", "ng_test_library", "ts_library") - -ts_library( - name = "harness", - srcs = glob( - ["**/*.ts"], - exclude = ["**/*.spec.ts"], - ), - deps = [ - "//src/cdk/coercion", - "//src/cdk/testing", - ], -) - -ng_test_library( - name = "tests_lib", - srcs = glob(["**/*.spec.ts"]), - deps = [ - ":harness", - "//src/cdk/testing", - "//src/cdk/testing/testbed", - "//src/material/slider", - ], -) diff --git a/src/material/slider/testing/BUILD.bazel b/src/material/slider/testing/BUILD.bazel new file mode 100644 index 000000000000..35ea1594cf85 --- /dev/null +++ b/src/material/slider/testing/BUILD.bazel @@ -0,0 +1,47 @@ +package(default_visibility = ["//visibility:public"]) + +load("//tools:defaults.bzl", "ng_module", "ng_test_library", "ng_web_test_suite") + +ng_module( + name = "testing", + srcs = glob( + ["**/*.ts"], + exclude = ["**/*.spec.ts"], + ), + module_name = "@angular/material/slider/testing", + deps = [ + "//src/cdk/coercion", + "//src/cdk/testing", + ], +) + +ng_test_library( + name = "harness_tests_lib", + srcs = ["shared.spec.ts"], + deps = [ + ":testing", + "//src/cdk/testing", + "//src/cdk/testing/testbed", + "//src/material/slider", + "@npm//@angular/forms", + "@npm//@angular/platform-browser", + ], +) + +ng_test_library( + name = "unit_tests_lib", + srcs = glob( + ["**/*.spec.ts"], + exclude = ["shared.spec.ts"], + ), + deps = [ + ":harness_tests_lib", + ":testing", + "//src/material/slider", + ], +) + +ng_web_test_suite( + name = "unit_tests", + deps = [":unit_tests_lib"], +) diff --git a/src/material/slider/testing/index.ts b/src/material/slider/testing/index.ts new file mode 100644 index 000000000000..676ca90f1ffa --- /dev/null +++ b/src/material/slider/testing/index.ts @@ -0,0 +1,9 @@ +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ + +export * from './public-api'; diff --git a/src/material/slider/testing/public-api.ts b/src/material/slider/testing/public-api.ts new file mode 100644 index 000000000000..608327c182fe --- /dev/null +++ b/src/material/slider/testing/public-api.ts @@ -0,0 +1,10 @@ +/** + * @license + * Copyright Google LLC All Rights Reserved. + * + * Use of this source code is governed by an MIT-style license that can be + * found in the LICENSE file at https://angular.io/license + */ + +export * from './slider-harness'; +export * from './slider-harness-filters'; diff --git a/src/material-experimental/mdc-slider/harness/slider-harness.spec.ts b/src/material/slider/testing/shared.spec.ts similarity index 88% rename from src/material-experimental/mdc-slider/harness/slider-harness.spec.ts rename to src/material/slider/testing/shared.spec.ts index 5a43797ca518..9b1f97c5b0ef 100644 --- a/src/material-experimental/mdc-slider/harness/slider-harness.spec.ts +++ b/src/material/slider/testing/shared.spec.ts @@ -3,40 +3,28 @@ import {TestbedHarnessEnvironment} from '@angular/cdk/testing/testbed'; import {Component} from '@angular/core'; import {ComponentFixture, TestBed} from '@angular/core/testing'; import {MatSliderModule} from '@angular/material/slider'; -import {MatSliderHarness} from './slider-harness'; - -let fixture: ComponentFixture; -let loader: HarnessLoader; -let sliderHarness: typeof MatSliderHarness; - -describe('MatSliderHarness', () => { - describe('non-MDC-based', () => { - beforeEach(async () => { - await TestBed - .configureTestingModule({ - imports: [MatSliderModule], - declarations: [SliderHarnessTest], - }) - .compileComponents(); - - fixture = TestBed.createComponent(SliderHarnessTest); - fixture.detectChanges(); - loader = TestbedHarnessEnvironment.loader(fixture); - sliderHarness = MatSliderHarness; - }); - - runTests(); - }); - - describe( - 'MDC-based', - () => { - // TODO: run tests for MDC based slider once implemented. - }); -}); +import {MatSliderHarness} from '@angular/material/slider/testing/slider-harness'; /** Shared tests to run on both the original and MDC-based sliders. */ -function runTests() { +export function runHarnessTests( + sliderModule: typeof MatSliderModule, + sliderHarness: typeof MatSliderHarness) { + let fixture: ComponentFixture; + let loader: HarnessLoader; + + beforeEach(async () => { + await TestBed + .configureTestingModule({ + imports: [sliderModule], + declarations: [SliderHarnessTest], + }) + .compileComponents(); + + fixture = TestBed.createComponent(SliderHarnessTest); + fixture.detectChanges(); + loader = TestbedHarnessEnvironment.loader(fixture); + }); + it('should load all slider harnesses', async () => { const sliders = await loader.getAllHarnesses(sliderHarness); expect(sliders.length).toBe(3); diff --git a/src/material-experimental/mdc-slider/harness/slider-harness-filters.ts b/src/material/slider/testing/slider-harness-filters.ts similarity index 100% rename from src/material-experimental/mdc-slider/harness/slider-harness-filters.ts rename to src/material/slider/testing/slider-harness-filters.ts diff --git a/src/material/slider/testing/slider-harness.spec.ts b/src/material/slider/testing/slider-harness.spec.ts new file mode 100644 index 000000000000..6ca13c8300d5 --- /dev/null +++ b/src/material/slider/testing/slider-harness.spec.ts @@ -0,0 +1,7 @@ +import {MatSliderModule} from '@angular/material/slider'; +import {runHarnessTests} from '@angular/material/slider/testing/shared.spec'; +import {MatSliderHarness} from './slider-harness'; + +describe('Non-MDC-based MatSliderHarness', () => { + runHarnessTests(MatSliderModule, MatSliderHarness); +}); diff --git a/src/material-experimental/mdc-slider/harness/slider-harness.ts b/src/material/slider/testing/slider-harness.ts similarity index 100% rename from src/material-experimental/mdc-slider/harness/slider-harness.ts rename to src/material/slider/testing/slider-harness.ts diff --git a/test/karma-system-config.js b/test/karma-system-config.js index 7f45fbeb407e..07726c097598 100644 --- a/test/karma-system-config.js +++ b/test/karma-system-config.js @@ -140,6 +140,8 @@ System.config({ '@angular/material/slide-toggle/testing': 'dist/packages/material/slide-toggle/testing/index.js', '@angular/material/slide-toggle/testing/shared.spec': 'dist/packages/material/slide-toggle/testing/shared.spec.js', '@angular/material/slider': 'dist/packages/material/slider/index.js', + '@angular/material/slider/testing': 'dist/packages/material/slider/testing/index.js', + '@angular/material/slider/testing/shared.spec': 'dist/packages/material/slider/testing/shared.spec.js', '@angular/material/snack-bar': 'dist/packages/material/snack-bar/index.js', '@angular/material/sort': 'dist/packages/material/sort/index.js', '@angular/material/stepper': 'dist/packages/material/stepper/index.js',