load("@npm_angular_bazel//:index.bzl", "ng_module")
load("@npm_bazel_typescript//:index.bzl", "ts_library")
load("@npm_bazel_karma//:index.bzl", "karma_web_test")

package(default_visibility = ["//:__subpackages__"])

# We don't import from these, but the generated ngfactory code will
NG_FACTORY_ADDED_IMPORTS = [
    "@npm//@angular/animations",
    "@npm//@angular/forms",
]

ng_module(
    name = "gui2-topo-lib",
    srcs = glob(
        include = ["**/*.ts"],
        exclude = [
            "**/*.spec.ts",
        ],
    ),
    assets = glob([
        "**/*.css",
        "**/*.html",
    ]),
    tsconfig = "//web/gui2:tsconfig.json",
    deps = NG_FACTORY_ADDED_IMPORTS + [
        "//web/gui2-fw-lib",
        "@npm//@angular/core",
        "@npm//@angular/router",
        "@npm//@angular/platform-browser",
        "@npm//rxjs",
        "@npm//@types",
        "@npm//topojson-client",
    ],
)

ts_library(
    name = "test_lib",
    testonly = 1,
    srcs = glob(
        include = ["**/*.spec.ts"],
        # TODO re-enable this test
        exclude = [
            "lib/layer/backgroundsvg/backgroundsvg.component.spec.ts",
            "lib/layer/forcesvg/forcesvg.component.spec.ts",
            "lib/layer/forcesvg/visuals/hostnodesvg/hostnodesvg.component.spec.ts",
        ],
    ),
    tsconfig = "//web/gui2:tsconfig-test",
    deps = [
        ":gui2-topo-lib",
        "//web/gui2-fw-lib",
        "@npm//@angular/common",
        "@npm//@angular/core",
        "@npm//@angular/forms",
        "@npm//@angular/platform-browser",
        "@npm//@angular/router",
        "@npm//@types/jasmine",
        "@npm//rxjs",
    ],
)

# Convert topojson-client to an AMD module so it can be loaded in the RequireJS test environment.
genrule(
    name = "topojson-client_requirejs",
    srcs = [
        "@npm//:node_modules/topojson-client/dist/topojson-client.js",
    ],
    outs = [
        "topojson-client.js",
    ],
    cmd = """echo "define('topojson-client', function(require, exports, module) {" > $@ \
             && cat $< >> $@ \
             && echo '});' >> $@""",
)

# Convert d3-force to an AMD module so it can be loaded in the RequireJS test environment.
genrule(
    name = "d3-force_requirejs",
    srcs = [
        "@npm//:node_modules/d3-force/dist/d3-force.js",
    ],
    outs = [
        "d3-force.js",
    ],
    cmd = """echo "define('d3-force', function(require, exports, module) {" > $@ \
             && cat $< >> $@ \
             && echo '});' >> $@""",
)

# Convert d3-quadtree to an AMD module so it can be loaded in the RequireJS test environment.
genrule(
    name = "d3-quadtree_requirejs",
    srcs = [
        "@npm//:node_modules/d3-quadtree/dist/d3-quadtree.js",
    ],
    outs = [
        "d3-quadtree.js",
    ],
    cmd = """echo "define('d3-quadtree', function(require, exports, module) {" > $@ \
             && cat $< >> $@ \
             && echo '});' >> $@""",
)

# Convert d3-collection to an AMD module so it can be loaded in the RequireJS test environment.
genrule(
    name = "d3-collection_requirejs",
    srcs = [
        "@npm//:node_modules/d3-collection/dist/d3-collection.js",
    ],
    outs = [
        "d3-collection.js",
    ],
    cmd = """echo "define('d3-collection', function(require, exports, module) {" > $@ \
             && cat $< >> $@ \
             && echo '});' >> $@""",
)

# Convert d3-dispatch to an AMD module so it can be loaded in the RequireJS test environment.
genrule(
    name = "d3-dispatch_requirejs",
    srcs = [
        "@npm//:node_modules/d3-dispatch/dist/d3-dispatch.js",
    ],
    outs = [
        "d3-dispatch.js",
    ],
    cmd = """echo "define('d3-dispatch', function(require, exports, module) {" > $@ \
             && cat $< >> $@ \
             && echo '});' >> $@""",
)

# Convert d3-timer to an AMD module so it can be loaded in the RequireJS test environment.
genrule(
    name = "d3-timer_requirejs",
    srcs = [
        "@npm//:node_modules/d3-timer/dist/d3-timer.js",
    ],
    outs = [
        "d3-timer.js",
    ],
    cmd = """echo "define('d3-timer', function(require, exports, module) {" > $@ \
             && cat $< >> $@ \
             && echo '});' >> $@""",
)

karma_web_test(
    name = "test",
    srcs = [
    ],
    # do not sort
    bootstrap = [
        "@npm//:node_modules/zone.js/dist/zone-testing-bundle.js",
        "@npm//:node_modules/reflect-metadata/Reflect.js",
    ],
    #    browsers = [
    #        "@io_bazel_rules_webtesting//browsers:chromium-local",
    #        "@io_bazel_rules_webtesting//browsers:firefox-local",
    #    ],
    tags = ["native"],
    runtime_deps = [
        "//web/gui2/src/main/webapp:initialize_testbed",
    ],
    deps = [
        ":d3-collection_requirejs",
        ":d3-dispatch_requirejs",
        ":d3-force_requirejs",
        ":d3-quadtree_requirejs",
        ":d3-timer_requirejs",
        ":test_lib",
        ":topojson-client_requirejs",
        "//web/gui:src/main/webapp/data",
        "//web/gui2/src/main/webapp:d3_requirejs",
        "//web/gui2/src/main/webapp:rxjs_umd_modules",
    ],
)
