"Define a convenience macro for examples integration testing"

load("@build_bazel_rules_nodejs//internal/bazel_integration_test:bazel_integration_test.bzl", "rules_nodejs_integration_test")
load("//:tools/defaults.bzl", "codeowners")

def example_integration_test(name, owners = [], **kwargs):
    "Set defaults for the bazel_integration_test common to our examples"
    dirname = name[len("examples_"):]
    native.filegroup(
        name = "_%s_sources" % name,
        srcs = native.glob(
            [
                "%s/*" % dirname,
                "%s/**/*" % dirname,
            ],
            exclude = ["%s/node_modules/**" % dirname],
        ),
    )
    if len(owners):
        codeowners(
            name = "OWNERS." + name,
            teams = owners,
            pattern = dirname + "/**",
        )
    rules_nodejs_integration_test(
        name = name,
        tags = kwargs.pop("tags", []) + ["examples"],
        workspace_files = kwargs.pop("workspace_files", "_%s_sources" % name),
        resolutions = {"//packages/worker:npm_package": "@bazel/worker"},
        **kwargs
    )
