# 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
  public_deps = [
    "bin",
    "examples",
    "session_shells",
    "settings",
    "story_shells",
  ]
}

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

  public_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
  public_deps = [ "bin:dart_target_tests" ]
}

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