# 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)",
      "//src/experiences/settings/lib/widgets:dart_widget_tests($host_toolchain)",
    ]
  }

  public_deps = _flutter_tester_tests
}
