# Copyright 2021 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("//build/components.gni")
import("//build/config.gni")
import("//build/dist/resource.gni")

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

config_data("workstation_eng_interface_config") {
  for_pkg = "setui_service"

  outputs = [ "interface_configuration.json" ]
  sources = [ "workstation_eng_interface_configuration.json" ]
}

config_data("workstation_eng_agent_config") {
  for_pkg = "setui_service"

  outputs = [ "agent_configuration.json" ]
  sources = [ "workstation_eng_agent_configuration.json" ]
}

resource("test_jsons") {
  sources = [
    "workstation_eng_agent_configuration.json",
    "workstation_eng_interface_configuration.json",
  ]
  outputs = [ "data/{{source_file_part}}" ]
}

fuchsia_unittest_package("config_test") {
  manifest = "meta/config_test.cml"
  deps = [
    ":test_jsons",
    "//src/settings/service:setui-config-test",
  ]
}

group("tests") {
  testonly = true
  deps = [ ":config_test" ]
}
