refactor: handle breaking changes in rules_nodejs 1.0.0 (#34736)

The major one that affects the angular repo is the removal of the bootstrap attribute in nodejs_binary, nodejs_test and jasmine_node_test in favor of using templated_args --node_options=--require=/path/to/script. The side-effect of this is that the bootstrap script does not get the require.resolve patches with explicitly loading the targets _loader.js file.

PR Close #34736
This commit is contained in:
Greg Magolan
2019-12-28 18:14:36 -08:00
committed by Matias Niemelä
parent ba662fa7a9
commit dcff76e8b9
70 changed files with 319 additions and 133 deletions

View File

@ -55,7 +55,10 @@ pkg_npm(
ts_library(
name = "test_lib",
testonly = True,
srcs = glob(["test/*.ts"]),
srcs = glob(
["test/*.ts"],
exclude = ["test/bootstrap.ts"],
),
tsconfig = "//tools:tsconfig-test",
deps = [
":lib",
@ -68,18 +71,40 @@ ts_library(
],
)
ts_library(
name = "bootstrap",
testonly = True,
srcs = ["test/bootstrap.ts"],
tsconfig = "//tools:tsconfig-test",
deps = ["@npm//@types/node"],
)
# Select the es5 .js output of the ts_library :boostrap target
# with `output_group = "es5_sources"` for use in the jasmine_node_test
# below. This exposes an internal detail of ts_library that is not ideal.
# TODO(gregmagolan): clean this up by using tsc() in this case rather than ts_library
filegroup(
name = "bootstrap_es5",
testonly = True,
srcs = [":bootstrap"],
output_group = "es5_sources",
)
jasmine_node_test(
name = "tests",
srcs = [":test_lib"],
bootstrap = ["angular/tools/ts-api-guardian/test/bootstrap.js"],
srcs = [
":test_lib",
],
data = glob([
"test/fixtures/*.ts",
"test/fixtures/*.patch",
]) + [
":bootstrap_es5",
":ts-api-guardian",
# TODO: remove this once the boostrap.js workaround has been removed.
":package.json",
],
templated_args = ["--node_options=--require=$(rlocation $(location :bootstrap_es5))"],
)
# END-INTERNAL