# 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("experiences") {
  testonly = true
  deps = [
    ":tests",
    "bin",
    "examples",
    "session_shells",
    "settings",
  ]
}

# All of the tests to run for the experiences repo
group("tests") {
  testonly = true

  deps = [
    ":dart_target_tests",
    ":dart_unittests",
    ":test_config",
    "bin/terminal_settings_agent:tests",
    "session_shells/ermine/session:tests",
  ]
}

group("test_config") {
  testonly = true
  deps = [ "tests/config" ]
}

# Dart tests which can run on target
group("dart_target_tests") {
  testonly = true
  deps = [ "bin:dart_target_tests" ]
}

# Dart unit tests which can run on the host or target
group("dart_unittests") {
  testonly = true
  deps = [
    "bin:dart_unittests",
    "examples:dart_unittests",
    "session_shells:dart_unittests",
    "settings:dart_unittests",
  ]
}
