"Unit tests for test.bzl"

load("@bazel_skylib//lib:unittest.bzl", "asserts", "unittest")
load("//lib/private:utils.bzl", "utils")

def _to_label_test_impl(ctx):
    env = unittest.begin(ctx)

    # assert label/string comparisons work as expected
    asserts.true(env, "//some/label" != Label("//some/label"))
    asserts.true(env, "//some/label" != Label("//some/other/label"))
    asserts.true(env, Label("//some/label") == Label("//some/label"))
    asserts.true(env, "//some/label" != Label("//some/label"))
    asserts.true(env, "//some/label" != Label("//some/other/label"))

    # assert that to_label can convert from string to label
    asserts.true(env, utils.to_label("//hello/world") == Label("//hello/world:world"))
    asserts.true(env, utils.to_label("//hello/world:world") == Label("//hello/world:world"))
    asserts.true(env, utils.to_label("@//hello/world") == Label("@//hello/world:world"))
    asserts.true(env, utils.to_label("@//hello/world:world") == Label("@//hello/world:world"))
    asserts.true(env, utils.to_label("@somewhere//hello/world") == Label("@somewhere//hello/world:world"))
    asserts.true(env, utils.to_label("@somewhere//hello/world:world") == Label("@somewhere//hello/world:world"))

    # the "@@" repository name syntax applies to Bazel 6 or greater
    if utils.is_bazel_6_or_greater():
        asserts.true(env, utils.to_label("@@//hello/world") == Label("@@//hello/world:world"))
        asserts.true(env, utils.to_label("@@//hello/world:world") == Label("@@//hello/world:world"))
        asserts.true(env, utils.to_label("@@somewhere//hello/world") == Label("@@somewhere//hello/world:world"))
        asserts.true(env, utils.to_label("@@somewhere//hello/world:world") == Label("@@somewhere//hello/world:world"))

        # In this context, "@@" should evaluate to the same label as "@"
        asserts.true(env, utils.to_label("@@//hello/world") == Label("@//hello/world:world"))
        asserts.true(env, utils.to_label("@@//hello/world:world") == Label("@//hello/world:world"))
        asserts.true(env, utils.to_label("@@somewhere//hello/world") == Label("@somewhere//hello/world:world"))
        asserts.true(env, utils.to_label("@@somewhere//hello/world:world") == Label("@somewhere//hello/world:world"))

    # assert that to_label will handle a Label as an argument
    asserts.true(env, utils.to_label(Label("//hello/world")) == Label("//hello/world:world"))
    asserts.true(env, utils.to_label(Label("//hello/world:world")) == Label("//hello/world:world"))

    # relative labels
    for (actual, expected) in ctx.attr.relative_asserts.items():
        asserts.true(env, actual.label == Label(expected))

    return unittest.end(env)

def _is_external_label_test_impl(ctx):
    env = unittest.begin(ctx)

    # assert that labels and strings that are constructed within this workspace return false
    asserts.false(env, utils.is_external_label("//some/label"))
    asserts.false(env, utils.is_external_label(Label("//some/label")))
    asserts.false(env, utils.is_external_label("@//some/label"))
    asserts.false(env, utils.is_external_label(Label("@aspect_bazel_lib//some/label")))
    asserts.false(env, ctx.attr.internal_with_workspace_as_string)

    # the "@@" repository name syntax applies to Bazel 6 or greater
    if utils.is_bazel_6_or_greater():
        asserts.false(env, utils.is_external_label("@@//some/label"))

    # assert that labels and string that give a workspace return true
    asserts.true(env, utils.is_external_label(Label("@bazel_skylib//some/label")))
    asserts.true(env, ctx.attr.external_as_string)

    return unittest.end(env)

def _propagate_well_known_tags_test_impl(ctx):
    env = unittest.begin(ctx)

    asserts.equals(env, ["manual", "cpu:12"], utils.propagate_well_known_tags(["foo", "manual", "bar", "cpu:12"]))

    return unittest.end(env)

def _propagate_common_rule_attributes_test_impl(ctx):
    env = unittest.begin(ctx)

    asserts.equals(env, {
        "features": ["dbg"],
        "testonly": True,
        "visibility": ["//visibility:private"],
    }, utils.propagate_common_rule_attributes({
        "features": ["dbg"],
        "testonly": True,
        "visibility": ["//visibility:private"],
        "platform": ["//:myplatform"],
        "env": {"PATH": "/usr/bin:/bin"},
        "size": "small",
    }))

    return unittest.end(env)

def _propagate_common_test_rule_attributes_test_impl(ctx):
    env = unittest.begin(ctx)

    asserts.equals(env, {
        "features": ["dbg"],
        "testonly": True,
        "visibility": ["//visibility:private"],
        "env": {"PATH": "/usr/bin:/bin"},
        "size": "small",
    }, utils.propagate_common_test_rule_attributes({
        "features": ["dbg"],
        "testonly": True,
        "visibility": ["//visibility:private"],
        "platform": ["//:myplatform"],
        "env": {"PATH": "/usr/bin:/bin"},
        "size": "small",
    }))

    return unittest.end(env)

def _propagate_common_binary_rule_attributes_test_impl(ctx):
    env = unittest.begin(ctx)

    asserts.equals(env, {
        "features": ["dbg"],
        "testonly": True,
        "visibility": ["//visibility:private"],
        "env": {"PATH": "/usr/bin:/bin"},
    }, utils.propagate_common_binary_rule_attributes({
        "features": ["dbg"],
        "testonly": True,
        "visibility": ["//visibility:private"],
        "platform": ["//:myplatform"],
        "env": {"PATH": "/usr/bin:/bin"},
        "size": "small",
    }))

    return unittest.end(env)

def _consistent_label_str_impl(ctx):
    env = unittest.begin(ctx)

    asserts.equals(env, "@//foo:bar", utils.consistent_label_str(ctx, Label("//foo:bar")))
    asserts.equals(env, "@//foo:bar", utils.consistent_label_str(ctx, Label("@//foo:bar")))
    asserts.equals(env, "@//foo:bar", utils.consistent_label_str(ctx, Label("@aspect_bazel_lib//foo:bar")))
    asserts.equals(env, "@bazel_skylib//foo:bar", utils.consistent_label_str(ctx, Label("@bazel_skylib//foo:bar")))

    return unittest.end(env)

to_label_test = unittest.make(
    _to_label_test_impl,
    attrs = {
        "relative_asserts": attr.label_keyed_string_dict(
            allow_files = True,
            mandatory = True,
        ),
    },
)

is_external_label_test = unittest.make(
    _is_external_label_test_impl,
    attrs = {
        "external_as_string": attr.bool(
            mandatory = True,
        ),
        "internal_with_workspace_as_string": attr.bool(
            mandatory = True,
        ),
    },
)

propagate_well_known_tags_test = unittest.make(_propagate_well_known_tags_test_impl)
propagate_common_rule_attributes_test = unittest.make(_propagate_common_rule_attributes_test_impl)
propagate_common_test_rule_attributes_test = unittest.make(_propagate_common_test_rule_attributes_test_impl)
propagate_common_binary_rule_attributes_test = unittest.make(_propagate_common_binary_rule_attributes_test_impl)
consistent_label_str_test = unittest.make(_consistent_label_str_impl)

# buildifier: disable=function-docstring
def file_exists_test():
    # Tests that must run in the loading phase
    if utils.file_exists("does-not-exist"):
        fail("does-not-exist does not exist")
    if not utils.file_exists("utils_test.bzl"):
        fail("utils_test.bzl does exist")
    if (utils.file_exists("copy_to_bin")):
        fail("copy_to_bin exists, but is a directory")

# buildifier: disable=function-docstring
def utils_test_suite():
    to_label_test(
        name = "to_label_tests",
        relative_asserts = {
            utils.to_label(":utils_test.bzl"): "//lib/tests:utils_test.bzl",
        },
        timeout = "short",
        # TODO: to_label tests don't work under bzlmod
        target_compatible_with = select({
            "@aspect_bazel_lib//lib:bzlmod": ["@platforms//:incompatible"],
            "//conditions:default": [],
        }),
    )

    is_external_label_test(
        name = "is_external_label_tests",
        external_as_string = utils.is_external_label("@bazel_skylib//some/label"),
        internal_with_workspace_as_string = utils.is_external_label("@aspect_bazel_lib//some/label"),
        timeout = "short",
    )

    propagate_well_known_tags_test(
        name = "propagate_well_known_tags_tests",
        timeout = "short",
    )

    propagate_common_rule_attributes_test(
        name = "propagate_common_rule_attribute_tests",
        timeout = "short",
    )

    propagate_common_test_rule_attributes_test(
        name = "propagate_common_test_rule_attribute_tests",
        timeout = "short",
    )

    propagate_common_binary_rule_attributes_test(
        name = "propagate_common_binary_rule_attribute_tests",
        timeout = "short",
    )

    consistent_label_str_test(
        name = "consistent_label_str_tests",
        timeout = "short",
        # TODO: consistent_label_str tests don't work under bzlmod
        target_compatible_with = select({
            "@aspect_bazel_lib//lib:bzlmod": ["@platforms//:incompatible"],
            "//conditions:default": [],
        }),
    )

    file_exists_test()
