Skip to content

Commit 4247303

Browse files
devversionmmalerba
authored andcommitted
build: run mdc prototype tests with bazel
Sets up the MDC prototype entry-points to run tests with Bazel. This allows us to run tests for these components against Ivy.
1 parent 6c7fd30 commit 4247303

File tree

5 files changed

+107
-3
lines changed

5 files changed

+107
-3
lines changed

src/material-experimental/BUILD.bazel

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@ load("@io_bazel_rules_sass//:defs.bzl", "sass_library")
44
load("//tools:defaults.bzl", "ng_module", "ng_package")
55
load("//:packages.bzl", "ROLLUP_GLOBALS")
66

7+
exports_files(["mdc_require_config.js"])
8+
79
ng_module(
810
name = "material-experimental",
911
srcs = glob(["*.ts"], exclude=["**/*.spec.ts"]),

src/material-experimental/mdc-checkbox/BUILD.bazel

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package(default_visibility=["//visibility:public"])
22

33
load("@io_bazel_rules_sass//:defs.bzl", "sass_library", "sass_binary")
4-
load("//tools:defaults.bzl", "ng_module")
4+
load("//tools:defaults.bzl", "ng_module", "ng_test_library", "ng_web_test_suite")
55

66
ng_module(
77
name = "mdc-checkbox",
@@ -43,3 +43,23 @@ sass_binary(
4343
"//src/material-experimental/mdc-helpers:mdc_scss_deps_lib",
4444
]
4545
)
46+
47+
ng_test_library(
48+
name = "checkbox_tests_lib",
49+
srcs = glob(["**/*.spec.ts"]),
50+
deps = [
51+
":mdc-checkbox",
52+
"@npm//@angular/platform-browser",
53+
"@npm//@angular/forms",
54+
"//src/cdk/testing",
55+
]
56+
)
57+
58+
ng_web_test_suite(
59+
name = "unit_tests",
60+
static_files = ["@npm//node_modules/@material/checkbox:dist/mdc.checkbox.js"],
61+
deps = [
62+
"//src/material-experimental:mdc_require_config.js",
63+
":checkbox_tests_lib",
64+
],
65+
)

src/material-experimental/mdc-menu/BUILD.bazel

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package(default_visibility=["//visibility:public"])
22

33
load("@io_bazel_rules_sass//:defs.bzl", "sass_library", "sass_binary")
4-
load("//tools:defaults.bzl", "ng_module")
4+
load("//tools:defaults.bzl", "ng_module", "ng_test_library", "ng_web_test_suite")
55

66
ng_module(
77
name = "mdc-menu",
@@ -41,3 +41,27 @@ sass_binary(
4141
"//src/material-experimental/mdc-helpers:mdc_scss_deps_lib",
4242
]
4343
)
44+
45+
ng_test_library(
46+
name = "menu_tests_lib",
47+
srcs = glob(["**/*.spec.ts"]),
48+
deps = [
49+
":mdc-menu",
50+
"@npm//@angular/platform-browser",
51+
"@npm//rxjs",
52+
"//src/cdk/a11y",
53+
"//src/cdk/bidi",
54+
"//src/cdk/overlay",
55+
"//src/cdk/keycodes",
56+
"//src/cdk/scrolling",
57+
"//src/cdk/testing",
58+
"//src/material/core",
59+
]
60+
)
61+
62+
ng_web_test_suite(
63+
name = "unit_tests",
64+
deps = [
65+
":menu_tests_lib",
66+
],
67+
)

src/material-experimental/mdc-slide-toggle/BUILD.bazel

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package(default_visibility=["//visibility:public"])
22

33
load("@io_bazel_rules_sass//:defs.bzl", "sass_library", "sass_binary")
4-
load("//tools:defaults.bzl", "ng_module")
4+
load("//tools:defaults.bzl", "ng_module", "ng_test_library", "ng_web_test_suite")
55

66
ng_module(
77
name = "mdc-slide-toggle",
@@ -40,3 +40,24 @@ sass_binary(
4040
"//src/material-experimental/mdc-helpers:mdc_scss_deps_lib",
4141
]
4242
)
43+
44+
ng_test_library(
45+
name = "slide_toggle_tests_lib",
46+
srcs = glob(["**/*.spec.ts"]),
47+
deps = [
48+
":mdc-slide-toggle",
49+
"@npm//@angular/platform-browser",
50+
"@npm//@angular/forms",
51+
"//src/cdk/bidi",
52+
"//src/cdk/testing",
53+
]
54+
)
55+
56+
ng_web_test_suite(
57+
name = "unit_tests",
58+
static_files = ["@npm//node_modules/@material/switch:dist/mdc.switch.js"],
59+
deps = [
60+
"//src/material-experimental:mdc_require_config.js",
61+
":slide_toggle_tests_lib",
62+
],
63+
)
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
// Require.js is being used by the karma bazel rules and needs to be configured to properly
2+
// load AMD modules which are not explicitly named in their output bundle.
3+
require.config({
4+
paths: {
5+
'@material/animation': '/base/npm/node_modules/@material/animation/dist/mdc.animation',
6+
'@material/auto-init': '/base/npm/node_modules/@material/auto-init/dist/mdc.autoInit',
7+
'@material/base': '/base/npm/node_modules/@material/base/dist/mdc.base',
8+
'@material/checkbox': '/base/npm/node_modules/@material/checkbox/dist/mdc.checkbox',
9+
'@material/chips': '/base/npm/node_modules/@material/chips/dist/mdc.chips',
10+
'@material/dialog': '/base/npm/node_modules/@material/dialog/dist/mdc.dialog',
11+
'@material/dom': '/base/npm/node_modules/@material/dom/dist/mdc.dom',
12+
'@material/drawer': '/base/npm/node_modules/@material/drawer/dist/mdc.drawer',
13+
'@material/floating-label': '/base/npm/node_modules/@material/floating-label/dist/mdc.floatingLabel',
14+
'@material/form-field': '/base/npm/node_modules/@material/form-field/dist/mdc.formField',
15+
'@material/grid-list': '/base/npm/node_modules/@material/grid-list/dist/mdc.gridList',
16+
'@material/icon-button': '/base/npm/node_modules/@material/icon-button/dist/mdc.iconButton',
17+
'@material/line-ripple': '/base/npm/node_modules/@material/line-ripple/dist/mdc.lineRipple',
18+
'@material/linear-progress': '/base/npm/node_modules/@material/linear-progress/dist/mdc.linearProgress',
19+
'@material/list': '/base/npm/node_modules/@material/list/dist/mdc.list',
20+
'@material/menu': '/base/npm/node_modules/@material/menu/dist/mdc.menu',
21+
'@material/menu-surface': '/base/npm/node_modules/@material/menu-surface/dist/mdc.menuSurface',
22+
'@material/notched-outline': '/base/npm/node_modules/@material/notched-outline/dist/mdc.notchedOutline',
23+
'@material/radio': '/base/npm/node_modules/@material/radio/dist/mdc.radio',
24+
'@material/ripple': '/base/npm/node_modules/@material/ripple/dist/mdc.ripple',
25+
'@material/select': '/base/npm/node_modules/@material/select/dist/mdc.select',
26+
'@material/slider': '/base/npm/node_modules/@material/slider/dist/mdc.slider',
27+
'@material/snackbar': '/base/npm/node_modules/@material/snackbar/dist/mdc.snackbar',
28+
'@material/switch': '/base/npm/node_modules/@material/switch/dist/mdc.switch',
29+
'@material/tab': '/base/npm/node_modules/@material/tab/dist/mdc.tab',
30+
'@material/tab-bar': '/base/npm/node_modules/@material/tab-bar/dist/mdc.tabBar',
31+
'@material/tab-indicator': '/base/npm/node_modules/@material/tab-indicator/dist/mdc.tabIndicator',
32+
'@material/tab-scroller': '/base/npm/node_modules/@material/tab-scroller/dist/mdc.tabScroller',
33+
'@material/text-field': '/base/npm/node_modules/@material/textfield/dist/mdc.textField',
34+
'@material/toolbar': '/base/npm/node_modules/@material/toolbar/dist/mdc.toolbar',
35+
'@material/top-app-bar': '/base/npm/node_modules/@material/top-app-bar/dist/mdc.topAppBar',
36+
}
37+
});

0 commit comments

Comments
 (0)