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

import("//topaz/runtime/dart/dart_test.gni")
import("//topaz/runtime/flutter_runner/flutter_app.gni")

flutter_app("dashboard") {
  package_name = "dashboard"
  main_dart = "lib/main.dart"

  sources = [
    "build_status_model.dart",
    "build_status_widget.dart",
    "buildbucket/build_bucket_service.dart",
    "dashboard_app.dart",
    "dashboard_model.dart",
    "enums.dart",
    "info_text.dart",
    "service/build_info.dart",
    "service/build_service.dart",
  ]

  meta = [
    {
      path = rebase_path("meta/dashboard.cmx")
      dest = "dashboard.cmx"
    },
  ]

  deps = [
    "//garnet/public/fidl/fuchsia.testing.runner",
    "//peridot/public/fidl/fuchsia.modular",
    "//third_party/dart-pkg/git/flutter/packages/flutter",
    "//third_party/dart-pkg/pub/buildbucket",
    "//third_party/dart-pkg/pub/html",
    "//third_party/dart-pkg/pub/http",
    "//topaz/public/dart/fidl",
    "//topaz/public/dart/widgets:lib.widgets",
    "//topaz/public/lib/app/dart",
    "//topaz/public/lib/app_driver/dart",
    "//topaz/public/lib/module/dart",
    "//topaz/public/lib/module_resolver/dart",
    "//topaz/public/lib/ui/flutter",
    "//topaz/public/lib/widgets/dart",
  ]
}

dart_test("dashboard_tests") {
  sources = [
    "../test/build_bucket_service_test.dart",
    "../test/enums_test.dart",
  ]

  deps = [
    ":dashboard_dart_library",
    "//third_party/dart-pkg/git/flutter/packages/flutter_test",
    "//third_party/dart-pkg/pub/buildbucket",
    "//third_party/dart-pkg/pub/mockito",
    "//third_party/dart-pkg/pub/test",
  ]
}

package("config") {
  deprecated_system_image = true
  package_name = "dashboard_config"
  resources = [
    {
      dest = "sysmgr/dashboard.config"
      path = rebase_path("config/dashboard.config")
    },
  ]
}
