|
3 | 3 | load("@io_bazel_rules_sass//:defs.bzl", _sass_binary = "sass_binary", _sass_library = "sass_library") |
4 | 4 | load("@npm_angular_bazel//:index.bzl", _ng_module = "ng_module", _ng_package = "ng_package") |
5 | 5 | load("@npm_bazel_jasmine//:index.bzl", _jasmine_node_test = "jasmine_node_test") |
6 | | -load("@npm_bazel_karma//:index.bzl", _karma_web_test_suite = "karma_web_test_suite") |
| 6 | +load("@npm_bazel_karma//:index.bzl", _karma_web_test = "karma_web_test", _karma_web_test_suite = "karma_web_test_suite") |
7 | 7 | load("@npm_bazel_protractor//:index.bzl", _protractor_web_test_suite = "protractor_web_test_suite") |
8 | 8 | load("@npm_bazel_typescript//:index.bzl", _ts_library = "ts_library") |
9 | 9 | load("//:packages.bzl", "VERSION_PLACEHOLDER_REPLACEMENTS", "getAngularUmdTargets") |
@@ -154,14 +154,38 @@ def ng_e2e_test_library(deps = [], tsconfig = None, **kwargs): |
154 | 154 | **kwargs |
155 | 155 | ) |
156 | 156 |
|
157 | | -def karma_web_test_suite(deps = [], srcs = [], **kwargs): |
| 157 | +def karma_web_test_suite(name, **kwargs): |
| 158 | + web_test_args = {} |
| 159 | + kwargs["srcs"] = ["@npm//:node_modules/tslib/tslib.js"] + getAngularUmdTargets() + kwargs.get("srcs", []) |
| 160 | + kwargs["deps"] = ["//tools/rxjs:rxjs_umd_modules"] + kwargs.get("deps", []) |
| 161 | + |
| 162 | + for opt_name in kwargs.keys(): |
| 163 | + # Filter out options which are specific to "karma_web_test" targets. We cannot |
| 164 | + # pass options like "browsers" to the local web test target. |
| 165 | + if not opt_name in ["wrapped_test_tags", "browsers", "wrapped_test_tags", "tags"]: |
| 166 | + web_test_args[opt_name] = kwargs[opt_name] |
| 167 | + |
| 168 | + # Custom standalone web test that can be run to test against any browser |
| 169 | + # that is manually connected to. |
| 170 | + _karma_web_test( |
| 171 | + name = "%s_local_bin" % name, |
| 172 | + config_file = "//test:bazel-karma-local-config.js", |
| 173 | + tags = ["manual"], |
| 174 | + **web_test_args |
| 175 | + ) |
| 176 | + |
| 177 | + # Workaround for: https://github.com/bazelbuild/rules_nodejs/issues/1429 |
| 178 | + native.sh_binary( |
| 179 | + name = "%s_local" % name, |
| 180 | + srcs = ["%s_local_bin" % name], |
| 181 | + data = [":%s_local_bin" % name], |
| 182 | + tags = ["manual", "local", "ibazel_notify_changes"], |
| 183 | + testonly = True, |
| 184 | + ) |
| 185 | + |
| 186 | + # Default test suite with all configured browsers. |
158 | 187 | _karma_web_test_suite( |
159 | | - deps = ["//tools/rxjs:rxjs_umd_modules"] + deps, |
160 | | - # Required for running the compiled ng modules that use TypeScript import helpers. |
161 | | - # TODO(jelbourn): remove UMDs from here once we don't have to manually include them |
162 | | - srcs = [ |
163 | | - "@npm//:node_modules/tslib/tslib.js", |
164 | | - ] + getAngularUmdTargets() + srcs, |
| 188 | + name = name, |
165 | 189 | **kwargs |
166 | 190 | ) |
167 | 191 |
|
|
0 commit comments