load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
load("//hack/tools/gomock:gomock.bzl", "gomock")

gomock(name = "gomock")

go_library(
    name = "retry",
    srcs = ["retry_client.go"],
    importpath = "edge-infra.dev/pkg/sds/lib/etcd/client/retry",
    visibility = ["//visibility:public"],
    deps = ["@io_etcd_go_etcd_client_v3//:client"],
)

go_test(
    name = "retry_test",
    srcs = ["retry_client_test.go"],
    embed = [":retry"],
    deps = [
        "//pkg/sds/lib/etcd/client",
        "//pkg/sds/lib/etcd/client/mocks",
        "@com_github_go_logr_logr//testr",
        "@com_github_golang_mock//gomock",
        "@com_github_stretchr_testify//assert",
        "@com_github_stretchr_testify//require",
        "@io_etcd_go_etcd_api_v3//etcdserverpb",
        "@io_etcd_go_etcd_client_v3//:client",
        "@io_k8s_sigs_controller_runtime//:controller-runtime",
    ],
)