# 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("bundles") {
  testonly = true
  deps = [
    ":framework",
    ":tools",
  ]
}

group("tools") {
  testonly = true
  public_deps = [
    ":testing",
    "//src/modular/bin/basemgr_launcher",
    "//src/modular/bin/sessionctl",
  ]
}

group("framework") {
  public_deps = [
    "//src/identity/bin:modular",
    "//src/modular/bin/basemgr",
    "//src/modular/bin/basemgr:auto_login_base_shell",
    "//src/modular/bin/sessionmgr",
  ]
}

# Packages used for authoring and running integration tests.
group("testing") {
  testonly = true
  public_deps = [
    "//garnet/packages/testing:environment_delegating_runner",
    "//src/modular/bin/modular_test_harness",
  ]
}

# TODO: How is this group different from "testing" above?
group("integration_testing") {
  testonly = true
  public_deps = [
    ":framework",
    ":testing",
    "//garnet/packages/prod:test_runner",
    "//src/modular/bin/basemgr:auto_login_base_shell",
    "//src/modular/bin/basemgr:dev_base_shell",
    "//src/modular/bin/sessionmgr:dev_session_shell",
    "//src/modular/bin/sessionmgr/story_runner:dev_story_shell",
  ]
}

# Packages which contain tests.
group("tests") {
  testonly = true
  public_deps = [
    ":testing",
    "//src/modular:tests",
  ]
}
