support jsdom tests

Alternative would be to switch to jsdom for everything, but TextEncoder
is currently missing from jsdom, and jsdom mode is slower IIRC.
This commit is contained in:
Damien Elmes 2021-06-19 09:43:09 +10:00
parent 297150a1b6
commit f2029b8ba8
2 changed files with 4 additions and 2 deletions

View file

@ -5,17 +5,18 @@ load("//ts:eslint.bzl", "eslint_test")
ts_library( ts_library(
name = "html-filter", name = "html-filter",
module_name = "html-filter",
srcs = glob( srcs = glob(
["*.ts"], ["*.ts"],
exclude = ["*.test.ts"], exclude = ["*.test.ts"],
), ),
module_name = "html-filter",
tsconfig = "//ts:tsconfig.json", tsconfig = "//ts:tsconfig.json",
visibility = ["//visibility:public"], visibility = ["//visibility:public"],
deps = [], deps = [],
) )
jest_test( jest_test(
env = "jsdom",
deps = [ deps = [
"html-filter", "html-filter",
], ],

View file

@ -2,7 +2,7 @@ load("@npm//@bazel/typescript:index.bzl", "ts_library")
load("@esbuild_toolchain//:esbuild.bzl", esbuild = "esbuild_macro") load("@esbuild_toolchain//:esbuild.bzl", esbuild = "esbuild_macro")
load("@npm//jest-cli:index.bzl", _jest_test = "jest_test") load("@npm//jest-cli:index.bzl", _jest_test = "jest_test")
def jest_test(deps, name = "jest", protobuf = False): def jest_test(deps, name = "jest", protobuf = False, env = "node"):
"Build *.test.ts into a library, then test it with Jest." "Build *.test.ts into a library, then test it with Jest."
ts_sources = native.glob(["*.test.ts"]) ts_sources = native.glob(["*.test.ts"])
@ -61,6 +61,7 @@ def jest_test(deps, name = "jest", protobuf = False):
"--colors", "--colors",
"--config", "--config",
"$(location //ts:jest.config.js)", "$(location //ts:jest.config.js)",
"--env=" + env,
], ],
data = bundled_srcs + [ data = bundled_srcs + [
"//ts:jest.config.js", "//ts:jest.config.js",