Add another test for extending compile time jdeps

PiperOrigin-RevId: 729519090
Change-Id: I210dfb4cb0300eb0b4a42359f4c952a1d16cf248
diff --git a/java/test/common/java_common_tests.bzl b/java/test/common/java_common_tests.bzl
index 6f5b1f3..b5c406b 100644
--- a/java/test/common/java_common_tests.bzl
+++ b/java/test/common/java_common_tests.bzl
@@ -102,6 +102,65 @@
     assert_that_after.contains_at_least(before)
     assert_that_after.contains_exactly(target[JavaInfo]._compile_time_java_dependencies)
 
+def _test_compile_extend_compile_time_jdeps_rule_outputs(name):
+    util.helper_target(
+        custom_library_extended_jdeps,
+        name = name + "/foo",
+        srcs = ["Foo.java"],
+        extra_jdeps = "Foo.jdeps",
+    )
+    util.helper_target(
+        custom_library_extended_jdeps,
+        name = name + "/bar",
+        srcs = ["Bar.java"],
+        extra_jdeps = "Bar.jdeps",
+        deps = [name + "/foo"],
+    )
+    util.helper_target(
+        custom_library_extended_jdeps,
+        name = name + "/baz",
+        srcs = ["Baz.java"],
+        extra_jdeps = "Baz.jdeps",
+        exports = [name + "/foo"],
+    )
+
+    analysis_test(
+        name = name,
+        impl = _test_compile_extend_compile_time_jdeps_rule_outputs_impl,
+        targets = {
+            "foo": name + "/foo",
+            "bar": name + "/bar",
+            "baz": name + "/baz",
+        },
+        attr_values = {"tags": ["min_bazel_7"]},
+    )
+
+def _test_compile_extend_compile_time_jdeps_rule_outputs_impl(env, targets):
+    foo = targets.foo
+    compile_time_jdeps = foo[JavaInfo]._compile_time_java_dependencies
+    env.expect.that_depset_of_files(compile_time_jdeps).contains_exactly([
+        "{}/lib{}-hjar.jdeps".format(foo.label.package, foo.label.name),
+        "{}/Foo.jdeps".format(foo.label.package),
+    ])
+
+    # foo's jdeps shouldn't appear in bar's
+    bar = targets.bar
+    compile_time_jdeps = bar[JavaInfo]._compile_time_java_dependencies
+    env.expect.that_depset_of_files(compile_time_jdeps).contains_exactly([
+        "{}/lib{}-hjar.jdeps".format(bar.label.package, bar.label.name),
+        "{}/Bar.jdeps".format(bar.label.package),
+    ])
+
+    # baz exports foo, so we expect jdeps from both targets
+    baz = targets.baz
+    compile_time_jdeps = baz[JavaInfo]._compile_time_java_dependencies
+    env.expect.that_depset_of_files(compile_time_jdeps).contains_exactly([
+        "{}/lib{}-hjar.jdeps".format(foo.label.package, foo.label.name),
+        "{}/Foo.jdeps".format(foo.label.package),
+        "{}/lib{}-hjar.jdeps".format(baz.label.package, baz.label.name),
+        "{}/Baz.jdeps".format(baz.label.package),
+    ])
+
 def java_common_tests(name):
     test_suite(
         name = name,
@@ -111,5 +170,6 @@
             _test_compile_exports_no_sources,
             _test_java_plugin_info,
             _test_compile_extend_compile_time_jdeps,
+            _test_compile_extend_compile_time_jdeps_rule_outputs,
         ],
     )
diff --git a/java/test/testutil/rules/custom_library_extended_compile_jdeps.bzl b/java/test/testutil/rules/custom_library_extended_compile_jdeps.bzl
index a3e9ec1..6cc8284 100644
--- a/java/test/testutil/rules/custom_library_extended_compile_jdeps.bzl
+++ b/java/test/testutil/rules/custom_library_extended_compile_jdeps.bzl
@@ -15,6 +15,8 @@
         ctx,
         source_files = ctx.files.srcs,
         output = output_jar,
+        deps = [d[JavaInfo] for d in ctx.attr.deps],
+        exports = [e[JavaInfo] for e in ctx.attr.exports],
         java_toolchain = semantics.find_java_toolchain(ctx),
     )
     jdeps_info = JavaInfo(
@@ -39,6 +41,8 @@
     attrs = {
         "srcs": attr.label_list(allow_files = [".java"]),
         "extra_jdeps": attr.label(allow_single_file = True),
+        "deps": attr.label_list(providers = [JavaInfo]),
+        "exports": attr.label_list(providers = [JavaInfo]),
     },
     toolchains = [semantics.JAVA_TOOLCHAIN_TYPE],
     fragments = ["java"],