# 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")
    },
  ]
}
