# Copyright 2018 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/package.gni")
import("//topaz/bin/settings/settings_app.gni")
import("//topaz/runtime/dart/flutter_test.gni")
import("//topaz/runtime/flutter_runner/flutter_app.gni")

settings_app("settings") {
  config = "settings.config"
}

flutter_test("settings_tests") {
  sources = [
    "component_setting_entry_test.dart",
    "setting_entry_parser_test.dart",
    "settings_model_test.dart",
  ]

  deps = [
    ":settings_dart_library",
    "//third_party/dart-pkg/pub/mockito",
    "//third_party/dart-pkg/pub/test",
  ]
}

group("tests") {
  testonly = true

  deps = [
    ":settings_tests",
  ]
}
