# Copyright 2017 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/dart/dart_tool.gni")
import("//build/dart/test.gni")

dart_tool("doc_checker") {
  package_name = "doc_checker"
  output_name = "doc-checker"
  main_dart = "bin/main.dart"

  sources = [
    "errors.dart",
    "graph.dart",
    "image_scraper.dart",
    "link_checker.dart",
    "link_scraper.dart",
    "link_verifier.dart",
    "projects.dart",
    "yaml_checker.dart",
  ]

  deps = [
    "//third_party/dart-pkg/pub/args",
    "//third_party/dart-pkg/pub/http",
    "//third_party/dart-pkg/pub/markdown",
    "//third_party/dart-pkg/pub/meta",
    "//third_party/dart-pkg/pub/path",
    "//third_party/dart-pkg/pub/yaml",
  ]
}

dart_test("doc-checker-tests") {
  sources = [
    "graph_test.dart",
    "image_scraper_test.dart",
    "link_checker_test.dart",
    "link_scraper_test.dart",
    "link_verifier_test.dart",
    "yaml_checker_test.dart",
  ]

  deps = [
    ":doc_checker_dart_library",
    "//third_party/dart-pkg/pub/http",
    "//third_party/dart-pkg/pub/meta",
    "//third_party/dart-pkg/pub/path",
    "//third_party/dart-pkg/pub/test",
  ]
}

group("tests") {
  testonly = true

  deps = [ ":doc-checker-tests($host_toolchain)" ]
}
