# Copyright 2022 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.

import("//build/components.gni")
import("//build/dart/dart_library.gni")

group("dart_realm_builder_deps") {
  testonly = true
  deps = [
    ":includes",
    "//src/lib/fuchsia-component-test/realm_builder_server:realm_builder_server_component",
  ]
  public_deps = [ ":fuchsia_component_test" ]
}

dart_library("fuchsia_component_test") {
  package_name = "fuchsia_component_test"
  null_safe = true

  sdk_category = "partner"

  # TODO(fxb/98123): Make visibility private to this build file. (e.g. visibility = [ ":*" ])
  visibility = [ "*" ]

  sources = [
    "realm_builder.dart",
    "src/error.dart",
    "src/internal/local_component.dart",
    "src/internal/local_component_runner.dart",
    "src/local_component_handles.dart",
    "src/realm_builder.dart",
  ]

  deps = [
    "//sdk/dart/fidl",
    "//sdk/dart/fuchsia_logger",
    "//sdk/dart/fuchsia_services",
    "//sdk/dart/fuchsia_vfs",
    "//sdk/dart/zircon",
    "//sdk/fidl/fuchsia.component",
    "//sdk/fidl/fuchsia.component.config",
    "//sdk/fidl/fuchsia.component.decl",
    "//sdk/fidl/fuchsia.component.runner",
    "//sdk/fidl/fuchsia.component.test",
    "//sdk/fidl/fuchsia.data",
    "//sdk/fidl/fuchsia.diagnostics.types",
    "//sdk/fidl/fuchsia.io",
    "//third_party/dart-pkg/pub/collection",
  ]
}

expect_includes("includes") {
  includes = [ "//sdk/lib/sys/component/realm_builder.shard.cml" ]
}

group("tests") {
  testonly = true
  deps = [ "tests" ]
}
