64 lines
2.4 KiB
Python
64 lines
2.4 KiB
Python
load("@build_bazel_rules_nodejs//:index.bzl", "generated_file_test", "nodejs_binary", "npm_package_bin")
|
|
|
|
def partial_compliance_golden(filePath):
|
|
"""Creates the generate and testing targets for partial compile results.
|
|
"""
|
|
|
|
# Remove the "TEST_CASES.json" substring from the end of the provided path.
|
|
path = filePath[:-len("/TEST_CASES.json")]
|
|
generate_partial_name = "generate_partial_for_%s" % path
|
|
data = [
|
|
"//packages/compiler-cli/test/compliance/partial:generate_golden_partial_lib",
|
|
"//packages/compiler-cli/test/compliance/test_cases",
|
|
"//packages/compiler-cli/src/ngtsc/testing/fake_core:npm_package",
|
|
]
|
|
|
|
nodejs_binary(
|
|
name = generate_partial_name,
|
|
testonly = True,
|
|
data = data,
|
|
visibility = [":__pkg__"],
|
|
entry_point = "//packages/compiler-cli/test/compliance/partial:cli.ts",
|
|
templated_args = [
|
|
filePath,
|
|
# TODO(josephperrott): update dependency usages to no longer need bazel patch module resolver
|
|
# See: https://github.com/bazelbuild/rules_nodejs/wiki#--bazel_patch_module_resolver-now-defaults-to-false-2324
|
|
"--bazel_patch_module_resolver",
|
|
],
|
|
)
|
|
|
|
nodejs_binary(
|
|
name = generate_partial_name + ".debug",
|
|
testonly = True,
|
|
data = data,
|
|
visibility = [":__pkg__"],
|
|
entry_point = "//packages/compiler-cli/test/compliance/partial:cli.ts",
|
|
templated_args = [
|
|
# TODO(josephperrott): update dependency usages to no longer need bazel patch module resolver
|
|
# See: https://github.com/bazelbuild/rules_nodejs/wiki#--bazel_patch_module_resolver-now-defaults-to-false-2324
|
|
"--bazel_patch_module_resolver",
|
|
"--node_options=--inspect-brk",
|
|
filePath,
|
|
],
|
|
)
|
|
|
|
npm_package_bin(
|
|
name = "_generated_%s" % path,
|
|
tool = generate_partial_name,
|
|
testonly = True,
|
|
stdout = "%s/this_file_should_not_be_committed" % path,
|
|
link_workspace_root = True,
|
|
visibility = [":__pkg__"],
|
|
data = data,
|
|
)
|
|
|
|
generated_file_test(
|
|
visibility = ["//visibility:public"],
|
|
tags = [
|
|
"ivy-only",
|
|
],
|
|
name = "%s.golden" % path,
|
|
src = "//packages/compiler-cli/test/compliance/test_cases:%s/GOLDEN_PARTIAL.js" % path,
|
|
generated = "_generated_%s" % path,
|
|
)
|