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

group("bin") {
  deps = [
    "simple_browser",
    "terminal_settings",
    "terminal_settings_agent",
  ]
}

group("dart_target_tests") {
  testonly = true

  deps = [
    "simple_browser:simple_browser_target_test",
  ]
}

group("dart_unittests") {
  testonly = true

  # TODO(fxb/41505): Temporarily disable flutter_tester tests on mac hosts.
  _flutter_tester_tests = []
  if (host_os != "mac") {
    _flutter_tester_tests += [
      "simple_browser:simple_browser_unittests($host_toolchain)",
      "terminal_settings:terminal_settings_unittests($host_toolchain)",
    ]
  }

  deps = _flutter_tester_tests
}
