package(default_visibility = ["//visibility:public"])

load("//packages/bazel:index.bzl", "protractor_web_test_suite")
load("//tools:defaults.bzl", "ng_module", "ts_library")
load("@build_bazel_rules_typescript//:defs.bzl", "ts_devserver")

ng_module(
    name = "core_examples",
    srcs = glob(
        ["**/*.ts"],
        exclude = [
            "**/*_spec.ts",
            "**/*_howto.ts",
        ],
    ),
    # TODO: FW-1004 Type checking is currently not complete.
    type_check = False,
    deps = [
        "//packages/animations",
        "//packages/core",
        "//packages/platform-browser",
        "//packages/platform-browser-dynamic",
        "//packages/platform-browser/animations",
        "//packages/router",
    ],
)

ts_library(
    name = "core_e2e_tests_lib",
    testonly = True,
    srcs = glob(["**/e2e_test/*_spec.ts"]),
    tsconfig = "//packages/examples:tsconfig-e2e.json",
    deps = [
        "//packages/examples/test-utils",
        "@ngdeps//@types/jasminewd2",
        "@ngdeps//protractor",
    ],
)

ts_devserver(
    name = "devserver",
    entry_module = "@angular/examples/core/main",
    index_html = "//packages/examples:index.html",
    port = 4200,
    scripts = ["@ngdeps//node_modules/tslib:tslib.js"],
    static_files = [
        "@ngdeps//node_modules/zone.js:dist/zone.js",
        "@ngdeps//node_modules/zone.js:dist/task-tracking.js",
    ],
    deps = [":core_examples"],
)

protractor_web_test_suite(
    name = "protractor_tests",
    data = ["//packages/bazel/src/protractor/utils"],
    on_prepare = ":start-server.js",
    server = ":devserver",
    deps = [
        ":core_e2e_tests_lib",
        "@ngdeps//protractor",
        "@ngdeps//selenium-webdriver",
    ],
)
