# Copyright 2017 The Fuchsia Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

visibility = [
  "//peridot/bin/*",
  "//peridot/lib/*",
  "//src/ledger/*",
]

source_set("firebase_auth") {
  sources = [
    "firebase_auth.h",
    "firebase_auth_impl.cc",
    "firebase_auth_impl.h",
  ]

  deps = [
    "//src/ledger/bin/cobalt:ledger_metrics_registry_cc",
  ]

  public_deps = [
    "//garnet/public/lib/backoff",
    "//garnet/public/lib/callback",
    "//peridot/lib/rng",
    "//sdk/fidl/fuchsia.auth",
    "//sdk/fidl/fuchsia.modular.auth",
    "//src/lib/cobalt/cpp:cobalt_logger",
    "//src/lib/fxl",
    "//zircon/public/lib/fit",
  ]
}

source_set("unittests") {
  testonly = true

  sources = [
    "firebase_auth_impl_unittest.cc",
  ]

  deps = [
    ":firebase_auth",
    "//garnet/public/lib/backoff/testing",
    "//garnet/public/lib/gtest",
    "//src/ledger/lib/firebase_auth/testing",
  ]
}
