# 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",
    "bin/terminal_settings_agent:tests",
    "session_shells/ermine/session:tests",
  ]
}

# 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",
  ]
}
