Skip to content

Commit 335a273

Browse files
authored
fix(bazel): support multiple api_golden_test targets in the same Bazel package (#2663)
Currently multiple `package.json` files are generated in the same Bazel package, causing Bazel conflicts.
1 parent 85eab90 commit 335a273

File tree

1 file changed

+15
-2
lines changed

1 file changed

+15
-2
lines changed

bazel/api-golden/index.bzl

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
load("@aspect_bazel_lib//lib:copy_to_directory.bzl", "copy_to_directory")
12
load("@bazel_skylib//rules:write_file.bzl", "write_file")
23
load("@build_bazel_rules_nodejs//:index.bzl", "pkg_npm")
34
load("//bazel/api-golden:index_rjs.bzl", _rjs_api_golden_test_npm_package = "api_golden_test_npm_package")
@@ -27,9 +28,11 @@ def api_golden_test(
2728
strip_export_pattern = default_strip_export_pattern,
2829
types = [],
2930
**kwargs):
31+
# We can't directly write `package.json` as this could cause conflicts
32+
# if there are multiple individual file tests in the same Bazel package.
3033
write_file(
3134
name = "%s_synthetic_package_json" % name,
32-
out = "package.json",
35+
out = "%s_package.json" % name,
3336
content = [json.encode({
3437
"name": name,
3538
"exports": {
@@ -41,9 +44,19 @@ def api_golden_test(
4144
)
4245

4346
pkg_npm(
47+
name = "%s_js_package" % name,
48+
deps = data,
49+
testonly = True,
50+
)
51+
52+
copy_to_directory(
4453
name = "%s_synthetic_package" % name,
45-
deps = data + ["%s_synthetic_package_json" % name],
54+
srcs = ["%s_synthetic_package_json" % name, "%s_js_package" % name],
4655
testonly = True,
56+
replace_prefixes = {
57+
"%s_" % name: "",
58+
"%s_js_package/" % name: "",
59+
},
4760
)
4861

4962
_rjs_api_golden_test_npm_package(

0 commit comments

Comments
 (0)