# 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 = [
    "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/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/meta",
    "//third_party/dart-pkg/pub/test",
  ]
}

group("tests") {
  testonly = true

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