blob: ef16ea61b0caf094fd0bd3d9f2debb2cff35ac93 [file] [log] [blame]
load("@build_bazel_rules_nodejs//:index.bzl", "nodejs_binary")
load("//bazel:macros.bzl", "exports_files_legacy")
package(
default_applicable_licenses = ["//:license"],
)
licenses(["notice"])
exports_files_legacy()
# This is the easiest way to make sure we have a karma binary and all
# the plugins loaded into the node_modules folder in
# $SANDBOX_EXEC_ROOT/node_modules
# where the karma binary is invoked from. Other attempts to do this
# involving DefaultInfo [1] and depsets [2] didn't quite work because
# the transitive dependencies appear to have been loaded in
# $SANDBOX_EXEC_ROOT/bazel-out/k8-opt/bin/modules/canvaskit/canvaskit_js_tests.runfiles/npm/node_modules/
# instead, which is not where karma could find them. (Putting transitive
# deps under bazel-out works for C++ because we can add to the include
# search directories (via --include-directory or -I), but it is not clear
# how to expand karma's search path like that.
#
# Below basically says "We have a karma binary which needs these plugins to run"
# and have the karma_test macro use this as the executable instead of karma
# directly. This must be used in conjunction with listing the plugins in the
# karma configuration file (handled by karma_test).
nodejs_binary(
name = "karma_with_plugins",
data = [
"@npm//jasmine-core",
"@npm//karma",
"@npm//karma-chrome-launcher",
"@npm//karma-firefox-launcher",
"@npm//karma-jasmine",
],
entry_point = {"@npm//:node_modules/karma": "bin/karma"},
visibility = ["//modules:__subpackages__"],
)