# 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.

import("//peridot/build/executable_package.gni")

group("story_shell_factory") {
  testonly = true
  deps = [
    ":story_shell_factory_test_session_shell",
  ]
}

executable_package("story_shell_factory_test_session_shell") {
  testonly = true

  meta = [
    {
      path = "meta/story_shell_factory_test_session_shell.cmx"
      dest = "story_shell_factory_test_session_shell.cmx"
    },
  ]

  sources = [
    "story_shell_factory_impl.cc",
    "story_shell_factory_impl.h",
    "story_shell_factory_test_session_shell.cc",
    "story_shell_impl.cc",
    "story_shell_impl.h",
  ]

  deps = [
    "//garnet/public/lib/fsl",
    "//peridot/lib/fidl:array_to_string",
    "//peridot/lib/fidl:clone",
    "//peridot/lib/rapidjson",
    "//peridot/lib/testing:component_main",
    "//peridot/lib/testing:session_shell_base",
    "//peridot/public/lib/app_driver/cpp",
    "//peridot/public/lib/integration_testing/cpp",
    "//peridot/tests/common:defs",
    "//sdk/fidl/fuchsia.modular",
    "//sdk/fidl/fuchsia.testing.runner",
    "//sdk/fidl/fuchsia.ui.policy",
    "//sdk/lib/fidl/cpp",
    "//src/lib/fxl",
  ]
}
