Added back in Bazel tests for gui2-fw-lib and gui2-topo-lib

Also used a named path in typescript for gui2-fw-lib

Change-Id: I7233565e53b9b86e1766228ecc96b21ea6f7499d
diff --git a/web/gui2-fw-lib/BUILD.bazel b/web/gui2-fw-lib/BUILD.bazel
index edf04f4..b333909 100644
--- a/web/gui2-fw-lib/BUILD.bazel
+++ b/web/gui2-fw-lib/BUILD.bazel
@@ -16,6 +16,7 @@
 
 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_suite")
 
 package(default_visibility = ["//:__subpackages__"])
 
@@ -36,7 +37,6 @@
         ],
         exclude = [
             "**/*.spec.ts",
-            "test.ts",
         ],
     ),
     assets = glob([
@@ -48,6 +48,7 @@
     #    tsconfig = "tsconfig.json",
     generate_ve_shims = True,
     module_name = "gui2-fw-lib",
+    tsconfig = "//web/gui2:tsconfig.json",
     deps = [
         "@npm//@angular/animations",
         "@npm//@angular/common",
@@ -58,128 +59,53 @@
     ],
 )
 
-#filegroup(
-#    name = "rxjs_umd_modules",
-#    srcs = [
-#        # do not sort
-#        "@npm//:node_modules/rxjs/bundles/rxjs.umd.js",
-#        ":rxjs_shims.js",
-#    ],
-#)
-#
-#ts_library(
-#    name = "test_lib",
-#    testonly = 1,
-#    srcs = glob(["**/*.spec.ts"]),
-#    deps = [
-#        ":gui2-fw-lib",
-#        "@npm//@angular/common",
-#        "@npm//@angular/core",
-#        "@npm//@angular/platform-browser",
-#        "@npm//@angular/router",
-#        "@npm//@types",
-#        "@npm//rxjs",
-#    ],
-#)
-#
-#ts_library(
-#    name = "initialize_testbed",
-#    testonly = 1,
-#    srcs = [
-#        "initialize_testbed.ts",
-#    ],
-#    deps = [
-#        "@npm//@angular/core",
-#        "@npm//@angular/platform-browser-dynamic",
-#        "@npm//@types",
-#    ],
-#)
-#
-#ng_package(
-#    name = "gui2-fw-lib-pkg",
-#    srcs = [
-#        "package.json",
-#    ],
-#    data = glob(
-#        include = [
-#            "src/assets/**",
-#        ],
-#        exclude = [
-#            "**/*.spec.ts",
-#        ],
-#    ),
-#    entry_point = ":src/public-api.ts",  # In reality this is ignored and index.ts is used
-#    #    include_devmode_srcs = False,
-#    readme_md = "README.md",
-#    deps = [
-#        ":gui2-fw-lib",
-#        "@npm//@angular/animations",
-#        "@npm//@angular/common",
-#        "@npm//@angular/core",
-#        "@npm//@angular/platform-browser-dynamic",
-#        "@npm//@angular/router",
-#        "@npm//@types",
-#        "@npm//d3",
-#        "@npm//rxjs",
-#    ],
-#)
-#
-#genrule(
-#    name = "onos-gui2-fw-ng-build",
-#    srcs = [
-#        ":gui2-fw-lib-pkg",
-#    ],
-#    outs = [
-#        "gui2-fw-ng-build-prod.log",
-#        "gui2-fw-lib-ver.tgz",
-#    ],
-#    cmd = "ROOT=`pwd` &&" +
-#          " mkdir -p package &&" +
-#          " cp -r bazel-out/k8-fastbuild/bin/web/gui2-fw-lib/projects/gui2-fw-lib/gui2-fw-lib-pkg/* package &&" +
-#          " tar -czhf $$ROOT/$(location gui2-fw-lib-ver.tgz) package &&" +
-#          " touch $$ROOT/$(location gui2-fw-ng-build-prod.log)",  # to get the log always as the 2nd file
-#    message = "GUI FW Lib build",
-#    visibility = ["//visibility:public"],
-#)
-#
-#ts_web_test_suite(
-#    name = "gui2-fw-lib-test",
-#    srcs = [
-#        "@npm//:node_modules/tslib/tslib.js",
-#    ],
-#    # 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",
-#    ],
-#    runtime_deps = [
-#        ":initialize_testbed",
-#    ],
-#    deps = [
-#        ":rxjs_umd_modules",
-#        ":test_lib",
-#        "@npm//karma-jasmine",
-#    ],
-#)
-#
-#jdk_genrule(
-#    name = "gui2_fw_lib_ext_css",
-#    srcs = glob(
-#        [
-#            "src/lib/widget/panel.css",
-#            "src/lib/widget/panel-theme.css",
-#            "src/lib/widget/table.css",
-#            "src/lib/widget/table.theme.css",
-#            "src/lib/widget/table.theme.css",
-#            "src/lib/layer/loading.service.css",
-#        ],
-#    ),
-#    outs = ["gui2_fw_lib_css.jar"],
-#    cmd = " ROOT=`pwd` &&" +
-#          " cd web/gui2-fw-lib/projects/gui2-fw-lib/src/lib &&" +
-#          " jar Mcf $$ROOT/$@ .",
-#    visibility = ["//visibility:public"],
-#)
+ts_library(
+    name = "test_lib",
+    testonly = 1,
+    srcs = glob(
+        include = ["**/*.spec.ts"],
+        # TODO re-enable this test
+        exclude = ["lib/nav/nav.service.spec.ts"],
+    ),
+    tsconfig = "//web/gui2:tsconfig-test",
+    deps = [
+        ":gui2-fw-lib",
+        "@npm//@angular/common",
+        "@npm//@angular/core",
+        "@npm//@angular/forms",
+        "@npm//@angular/http",
+        "@npm//@angular/platform-browser",
+        "@npm//@angular/router",
+        "@npm//@types/jasmine",
+        "@npm//rxjs",
+    ],
+)
+
+karma_web_test_suite(
+    name = "test",
+    srcs = [
+        # We are manaully adding the bazel generated named-UMD d3 bundle here as
+        # named-UMD bundles for non-APF npm packages are not yet automatically added.
+        # This file is generated by the npm_umd_bundle @npm//d3
+        # rule that is setup by yarn_install.
+    ],
+    # 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 = [
+        ":test_lib",
+        "//web/gui:src/main/webapp/data",
+        "//web/gui2/src/main/webapp:d3_requirejs",
+        "//web/gui2/src/main/webapp:rxjs_umd_modules",
+    ],
+)