# 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("settings") {
  testonly = true

  # TODO(fxb/41505): Temporarily disable flutter_tester tests on mac hosts.
  _flutter_tester_tests = []
  if (host_os != "mac") {
    _flutter_tester_tests += [ "//src/experiences/settings/bin:settings" ]
  }

  public_deps =
      [
        "//src/experiences/settings/bluetooth:bluetooth_settings",
        "//src/experiences/settings/datetime:datetime_settings",
        "//src/experiences/settings/wifi:wifi_settings",
      ] + _flutter_tester_tests
}

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 += [
      "//src/experiences/settings/bin:settings_tests($host_toolchain)",
    ]
  }

  public_deps = _flutter_tester_tests
}
