build: add jasmine_test macro for replacing jasmine_node_test legacy rule (#61902)

This commit introduces the new `jasmine_test` macro that can be an
"almost" drop-in replacement for `jasmine_test`.

PR Close #61902
This commit is contained in:
Paul Gschwendtner 2025-06-05 12:47:15 +00:00 committed by Pawel Kozlowski
parent df0b8d45da
commit 08b543e2f6
2 changed files with 36 additions and 22 deletions

View file

@ -0,0 +1,34 @@
load("@aspect_rules_jasmine//jasmine:defs.bzl", _jasmine_test = "jasmine_test")
def jasmine_test(name, data = [], setup_node_bootstrap = False, **kwargs):
# Create relative path to root, from current package dir. Necessary as
# we change the `chdir` below to the package directory.
relative_to_root = "/".join([".."] * len(native.package_name().split("/")))
extra_data = []
fixed_args = []
if setup_node_bootstrap:
extra_data.append("//tools/testing:node_rjs")
fixed_args.append("--require=%s/tools/testing/node_tests.init.mjs" % relative_to_root)
_jasmine_test(
name = name,
node_modules = "//:node_modules",
chdir = native.package_name(),
fixed_args = [
"--require=%s/node_modules/source-map-support/register.js" % relative_to_root,
# Escape so that the `js_binary` launcher triggers Bash expansion.
"'**/*+(.|_)spec.js'",
"'**/*+(.|_)spec.mjs'",
"'**/*+(.|_)spec.cjs'",
] + fixed_args,
data = extra_data + data + [
"//packages:package_json",
"//packages:tsconfig_build",
"//tools/bazel/node_loader",
"//:node_modules/source-map-support",
],
node_options = ["--import", "%s/tools/bazel/node_loader/index.mjs" % relative_to_root],
**kwargs
)

View file

@ -1,7 +1,7 @@
load("@aspect_rules_jasmine//jasmine:defs.bzl", _jasmine_test = "jasmine_test")
load("@aspect_rules_js//npm:defs.bzl", _npm_package = "npm_package")
load("@aspect_rules_ts//ts:defs.bzl", _ts_config = "ts_config")
load("@rules_angular//src/ng_project:index.bzl", _ng_project = "ng_project")
load("//tools/bazel:jasmine_test.bzl", _jasmine_test = "jasmine_test")
load("//tools/bazel:module_name.bzl", "compute_module_name")
load("//tools/bazel:ng_package.bzl", _ng_package = "ng_package")
load("//tools/bazel:ts_project_interop.bzl", _ts_project = "ts_project")
@ -9,6 +9,7 @@ load("//tools/bazel:ts_project_interop.bzl", _ts_project = "ts_project")
npm_package = _npm_package
ts_config = _ts_config
ng_package = _ng_package
jasmine_test = _jasmine_test
def _determine_tsconfig(testonly):
if native.package_name().startswith("packages/compiler-cli"):
@ -86,24 +87,3 @@ def ng_project(
tsconfig = tsconfig,
**kwargs
)
def jasmine_test(name, data = [], args = [], **kwargs):
# Create relative path to root, from current package dir. Necessary as
# we change the `chdir` below to the package directory.
relative_to_root = "/".join([".."] * len(native.package_name().split("/")))
_jasmine_test(
name = name,
node_modules = "//:node_modules",
chdir = native.package_name(),
fixed_args = [
"--require=%s/node_modules/source-map-support/register.js" % relative_to_root,
"**/*spec.js",
"**/*spec.mjs",
"**/*spec.cjs",
] + args,
data = data + [
"//:node_modules/source-map-support",
],
**kwargs
)