diff --git a/tools/bazel/protractor_test.bzl b/tools/bazel/protractor_test.bzl deleted file mode 100644 index b893121d2fd..00000000000 --- a/tools/bazel/protractor_test.bzl +++ /dev/null @@ -1,27 +0,0 @@ -load("@devinfra//bazel/spec-bundling:index.bzl", _spec_bundle = "spec_bundle") -load("@rules_browsers//protractor_test:index.bzl", _protractor_test = "protractor_test") - -def protractor_web_test_suite(name, deps, **kwargs): - _spec_bundle( - name = "%s_bundle" % name, - deps = deps, - external = ["protractor", "selenium-webdriver"], - ) - - _protractor_test( - name = name, - deps = [":%s_bundle" % name], - extra_config = { - "useAllAngular2AppRoots": True, - "allScriptsTimeout": 120000, - "getPageTimeout": 120000, - "jasmineNodeOpts": { - "defaultTimeoutInterval": 120000, - }, - }, - data = [ - "//:node_modules/protractor", - "//:node_modules/selenium-webdriver", - ], - **kwargs - ) diff --git a/tools/bazel/webdriver_test.bzl b/tools/bazel/webdriver_test.bzl new file mode 100644 index 00000000000..43075bafe60 --- /dev/null +++ b/tools/bazel/webdriver_test.bzl @@ -0,0 +1,51 @@ +load("@devinfra//bazel/spec-bundling:index.bzl", "spec_bundle") +load("@rules_browsers//server_test:index.bzl", "server_test") +load("//tools/bazel:jasmine_test.bzl", "jasmine_test") + +def webdriver_test(name, deps, server, tags = [], data = [], external = [], **kwargs): + spec_bundle( + name = "%s_bundle" % name, + deps = deps, + external = ["selenium-webdriver"] + external, + platform = "node", + config = { + "banner": { + "js": """import {createRequire as __cjsCompatRequire} from 'module'; + const require = __cjsCompatRequire(import.meta.url); + const __filename = import.meta.filename; + const __dirname = import.meta.dirname;""", + }, + "target": ["ES2022"], + "format": "esm", + }, + ) + + jasmine_test( + name = "%s_jasmine_test" % name, + tags = tags + ["manual"], + data = data + [ + ":%s_bundle" % name, + "@rules_browsers//browsers/chromium", + "//:node_modules/selenium-webdriver", + ], + env = { + "CHROME_HEADLESS_BIN": "$(CHROME-HEADLESS-SHELL)", + "CHROMEDRIVER": "$(CHROMEDRIVER)", + }, + toolchains = ["@rules_browsers//browsers/chromium:toolchain_alias"], + **kwargs + ) + + server_test( + name = "%s_chromium" % name, + server = server, + test = ":%s_jasmine_test" % name, + tags = tags + ["e2e"], + ) + + native.test_suite( + name = name, + tests = [ + ":%s_chromium" % name, + ], + ) diff --git a/tools/defaults.bzl b/tools/defaults.bzl index a9dff43be7d..422b9966b48 100644 --- a/tools/defaults.bzl +++ b/tools/defaults.bzl @@ -14,7 +14,7 @@ load("//tools/bazel:esbuild.bzl", _esbuild = "esbuild", _esbuild_checked_in = "e load("//tools/bazel:jasmine_test.bzl", _angular_jasmine_test = "angular_jasmine_test", _jasmine_test = "jasmine_test", _zone_compatible_jasmine_test = "zone_compatible_jasmine_test", _zoneless_jasmine_test = "zoneless_jasmine_test") load("//tools/bazel:js_defs.bzl", _js_binary = "js_binary", _js_run_binary = "js_run_binary", _js_test = "js_test") load("//tools/bazel:npm_packages.bzl", _ng_package = "ng_package", _npm_package = "npm_package") -load("//tools/bazel:protractor_test.bzl", _protractor_web_test_suite = "protractor_web_test_suite") +load("//tools/bazel:webdriver_test.bzl", _webdriver_test = "webdriver_test") load("//tools/bazel:tsec.bzl", _tsec_test = "tsec_test") load("//tools/bazel:web_test.bzl", _ng_web_test_suite = "ng_web_test_suite", _web_test = "web_test", _zoneless_web_test_suite = "zoneless_web_test_suite") @@ -36,7 +36,7 @@ web_test = _web_test sass_binary = _sass_binary sass_library = _sass_library npm_sass_library = _npm_sass_library -protractor_web_test_suite = _protractor_web_test_suite +webdriver_test = _webdriver_test esbuild_checked_in = _esbuild_checked_in http_server = _http_server api_golden_test = _api_golden_test