Skip to content

Commit 3f60ad5

Browse files
committed
build: remove remaining jasmine_node_test and modernize webdriver test
Modernizes the rule to not rely on `rules_webtesting`. Yay.
1 parent a201e51 commit 3f60ad5

File tree

6 files changed

+37
-45
lines changed

6 files changed

+37
-45
lines changed

src/cdk/testing/BUILD.bazel

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,6 @@ e2e_test_suite(
4545
webdriver_test(
4646
name = "webdriver_e2e_tests",
4747
deps = [
48-
"//src/cdk/testing/tests:webdriver_test_sources_legacy",
48+
"//src/cdk/testing/tests:webdriver_test_sources",
4949
],
5050
)

src/cdk/testing/tests/webdriver-test.bzl

Lines changed: 12 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,31 @@
1-
load("//tools:defaults.bzl", "jasmine_node_test", "spec_bundle")
2-
load("@io_bazel_rules_webtesting//web:web.bzl", "web_test")
1+
load("//tools:defaults2.bzl", "jasmine_test", "spec_bundle")
32
load("//tools/server-test:index.bzl", "server_test")
43

54
def webdriver_test(name, deps, tags = [], **kwargs):
65
spec_bundle(
76
name = "%s_bundle" % name,
87
deps = deps,
9-
platform = "node",
10-
external = ["selenium-webdriver"],
118
)
129

13-
jasmine_node_test(
10+
jasmine_test(
1411
name = "%s_jasmine_test" % name,
1512
tags = tags + ["manual"],
16-
deps = ["%s_bundle" % name, "@npm//selenium-webdriver"],
13+
data = [
14+
":%s_bundle" % name,
15+
"@npm//@angular/build-tooling/bazel/browsers/chromium",
16+
],
17+
env = {
18+
"CHROMIUM_BIN": "$(CHROMIUM)",
19+
"CHROMEDRIVER": "$(CHROMEDRIVER)",
20+
},
21+
toolchains = ["@npm//@angular/build-tooling/bazel/browsers/chromium:toolchain_alias"],
1722
**kwargs
1823
)
1924

20-
web_test(
21-
name = "%s_chromium_web_test" % name,
22-
browser = "@npm//@angular/build-tooling/bazel/browsers/chromium:chromium",
23-
tags = tags + ["manual"],
24-
test = ":%s_jasmine_test" % name,
25-
)
26-
2725
server_test(
2826
name = "%s_chromium" % name,
2927
server = "//src/e2e-app:server",
30-
test = ":%s_chromium_web_test" % name,
28+
test = ":%s_jasmine_test" % name,
3129
tags = tags + ["e2e"],
3230
)
3331

src/cdk/testing/tests/webdriver.e2e.spec.ts

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -3,34 +3,32 @@ import {
33
SeleniumWebDriverHarnessEnvironment,
44
waitForAngularReady,
55
} from '../../testing/selenium-webdriver';
6-
import {runfiles} from '@bazel/runfiles';
76
import * as webdriver from 'selenium-webdriver';
87
import {crossEnvironmentSpecs} from './cross-environment.spec';
98
import {MainComponentHarness} from './harnesses/main-component-harness';
9+
import {Options, setDefaultService, ServiceBuilder} from 'selenium-webdriver/chrome';
10+
import path from 'path';
1011

1112
// Tests are flaky on CI unless we increase the timeout.
1213
jasmine.DEFAULT_TIMEOUT_INTERVAL = 10_000; // 10 seconds
1314

14-
/**
15-
* Metadata file generated by `rules_webtesting` for browser tests.
16-
* The metadata provides configuration for launching the browser and
17-
* necessary capabilities. See source for details:
18-
* https://github.com/bazelbuild/rules_webtesting/blob/06023bb3/web/internal/metadata.bzl#L69-L82
19-
*/
20-
interface WebTestMetadata {
21-
capabilities: webdriver.Capabilities;
22-
}
23-
24-
if (process.env['WEB_TEST_METADATA'] === undefined) {
15+
if (process.env['TEST_SERVER_PORT'] === undefined) {
2516
console.error(`Test running outside of a "web_test" target. No browser found.`);
2617
process.exit(1);
2718
}
2819

29-
const webTestMetadata: WebTestMetadata = require(
30-
runfiles.resolve(process.env['WEB_TEST_METADATA']),
31-
);
20+
const projectRoot = path.resolve(__dirname, '../../../');
3221
const port = process.env['TEST_SERVER_PORT'];
3322

23+
const chromeDriver = path.join(projectRoot, process.env['CHROMEDRIVER']!);
24+
const chromiumBin = path.join(projectRoot, process.env['CHROMIUM_BIN']!);
25+
26+
setDefaultService(
27+
new ServiceBuilder(chromeDriver).enableVerboseLogging().loggingTo('/tmp/test.txt').build(),
28+
);
29+
30+
process.env['CHROMEDRIVER_EXE'] = chromeDriver;
31+
3432
// Kagekiri is available globally in the browser. We declare it here so we can use it in the
3533
// browser-side script passed to `By.js`.
3634
declare const kagekiri: {
@@ -52,8 +50,10 @@ describe('WebDriverHarnessEnvironment', () => {
5250

5351
beforeAll(async () => {
5452
wd = await new webdriver.Builder()
55-
.usingServer(process.env['WEB_TEST_WEBDRIVER_SERVER']!)
56-
.withCapabilities(webTestMetadata.capabilities)
53+
.forBrowser('chrome')
54+
.setChromeOptions(
55+
new Options().setChromeBinaryPath(chromiumBin).addArguments('--no-sandbox').headless(),
56+
)
5757
.build();
5858

5959
// Ideally we would refresh the page and wait for Angular to stabilize on each test.

tools/defaults.bzl

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ load("@npm//@angular/build-tooling/bazel/esbuild:index.bzl", _esbuild = "esbuild
99
load("@npm//@angular/build-tooling/bazel/spec-bundling:index.bzl", _spec_bundle = "spec_bundle")
1010
load("@npm//@angular/build-tooling/bazel/http-server:index.bzl", _http_server = "http_server")
1111
load("@npm//@angular/build-tooling/bazel:extract_js_module_output.bzl", "extract_js_module_output")
12-
load("@npm//@bazel/jasmine:index.bzl", _jasmine_node_test = "jasmine_node_test")
1312
load("@npm//@bazel/protractor:index.bzl", _protractor_web_test_suite = "protractor_web_test_suite")
1413
load("//:packages.bzl", "NO_STAMP_NPM_PACKAGE_SUBSTITUTIONS", "NPM_PACKAGE_SUBSTITUTIONS")
1514
load("//:pkg-externals.bzl", "PKG_EXTERNALS")
@@ -142,10 +141,6 @@ def pkg_npm(name, visibility = None, **kwargs):
142141
visibility = visibility,
143142
)
144143

145-
def jasmine_node_test(**kwargs):
146-
kwargs["templated_args"] = ["--bazel_patch_module_resolver"] + kwargs.get("templated_args", [])
147-
_jasmine_node_test(**kwargs)
148-
149144
def protractor_web_test_suite(name, deps, **kwargs):
150145
spec_bundle(
151146
name = "%s_bundle" % name,

tools/defaults2.bzl

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,11 @@ load("//tools/bazel:ts_project_interop.bzl", _ts_project = "ts_project")
33
load("//tools/bazel:module_name.bzl", "compute_module_name")
44
load("@aspect_rules_js//npm:defs.bzl", _npm_package = "npm_package")
55
load("@rules_angular//src/ng_project:index.bzl", _ng_project = "ng_project")
6-
load("@devinfra//bazel/spec-bundling:index_rjs.bzl", "spec_bundle_amd")
6+
load("@devinfra//bazel/spec-bundling:index_rjs.bzl", "spec_bundle_amd", _spec_bundle = "spec_bundle")
77
load("@devinfra//bazel/karma:index.bzl", _karma_web_test_suite = "karma_web_test_suite")
88

9+
spec_bundle = _spec_bundle
10+
911
def npm_package(**kwargs):
1012
_npm_package(**kwargs)
1113

@@ -62,16 +64,14 @@ def jasmine_test(data = [], args = [], **kwargs):
6264
_jasmine_test(
6365
node_modules = "//:node_modules",
6466
chdir = native.package_name(),
65-
args = [
67+
fixed_args = [
6668
"--require=%s/node_modules/source-map-support/register.js" % relative_to_root,
6769
"**/*spec.js",
6870
"**/*spec.mjs",
6971
"**/*spec.cjs",
7072
] + args,
7173
data = data + [
7274
"//:node_modules/source-map-support",
73-
# Needed to ensure code is recognized as ESM.
74-
"//src:package_json",
7575
],
7676
**kwargs
7777
)

tools/markdown-to-html/BUILD.bazel

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
load("@aspect_rules_js//js:defs.bzl", "js_binary")
2-
load("//tools:defaults.bzl", "jasmine_node_test")
3-
load("//tools:defaults2.bzl", "ts_project")
2+
load("//tools:defaults2.bzl", "jasmine_test", "ts_project")
43

54
package(default_visibility = ["//visibility:public"])
65

@@ -45,8 +44,8 @@ ts_project(
4544
],
4645
)
4746

48-
jasmine_node_test(
47+
jasmine_test(
4948
name = "unit_tests",
50-
srcs = [":unit_test_lib_legacy"],
49+
data = [":unit_test_lib"],
5150
visibility = ["//visibility:private"],
5251
)

0 commit comments

Comments
 (0)