Skip to content

Commit dac7bc8

Browse files
authored
build: switch to new protractor rule (#30847)
Switches to our new simplified Protractor rule, that isn't based on `rules_js` and uses our latest browser Chrome headless shell version, based on Puppeteer.
1 parent 92bcc67 commit dac7bc8

11 files changed

+29
-87
lines changed

Diff for: WORKSPACE

+2-2
Original file line numberDiff line numberDiff line change
@@ -249,7 +249,7 @@ load("@bazel_tools//tools/build_defs/repo:git.bzl", "git_repository")
249249

250250
git_repository(
251251
name = "devinfra",
252-
commit = "b45dfa77df2021b23eeda5928ca6cd8bb89b21e7",
252+
commit = "cddc66a76ac0183790bc7a9fc1e5cf9f87512375",
253253
remote = "https://github.com/angular/dev-infra.git",
254254
)
255255

@@ -302,7 +302,7 @@ esbuild_register_toolchains(
302302

303303
git_repository(
304304
name = "rules_browsers",
305-
commit = "7e23dc705680369a323f520909d3984ae794965e",
305+
commit = "c8246bb6d8bba4e2ae23fc39c7b0cec651953e6d",
306306
remote = "https://github.com/devversion/rules_browsers.git",
307307
)
308308

Diff for: src/dev-app/BUILD.bazel

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
load("@build_bazel_rules_nodejs//:index.bzl", "pkg_web")
2-
load("//tools:defaults.bzl", "http_server", "sass_binary")
3-
load("//tools:defaults2.bzl", "ng_project")
2+
load("//tools:defaults.bzl", "sass_binary")
3+
load("//tools:defaults2.bzl", "http_server", "ng_project")
44
load("@npm2//:defs.bzl", "npm_link_all_packages")
55
load("@aspect_rules_esbuild//esbuild:defs.bzl", "esbuild")
66
load("//src/components-examples:config.bzl", "ALL_EXAMPLES")

Diff for: src/e2e-app/BUILD.bazel

+2-3
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
load("@aspect_rules_esbuild//esbuild:defs.bzl", "esbuild")
22
load("@npm2//:defs.bzl", "npm_link_all_packages")
3-
load("//tools:defaults.bzl", "http_server", "sass_binary")
4-
load("//tools:defaults2.bzl", "ng_project")
3+
load("//tools:defaults.bzl", "sass_binary")
4+
load("//tools:defaults2.bzl", "http_server", "ng_project")
55

66
package(default_visibility = ["//visibility:public"])
77

@@ -18,7 +18,6 @@ devserverIndexHtmlDependencies = [
1818

1919
exports_files([
2020
"protractor.conf.js",
21-
"start-devserver.js",
2221
"devserver-configure.js",
2322
])
2423

Diff for: src/e2e-app/protractor.conf.js

-12
This file was deleted.

Diff for: src/e2e-app/start-devserver.js

-21
This file was deleted.

Diff for: src/e2e-app/test_suite.bzl

+1-4
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,8 @@
11
load("//tools:defaults.bzl", "protractor_web_test_suite")
22

3-
def e2e_test_suite(name, data = [], tags = ["e2e"], deps = []):
3+
def e2e_test_suite(name, tags = ["e2e"], deps = []):
44
protractor_web_test_suite(
55
name = name,
6-
configuration = "//src/e2e-app:protractor.conf.js",
7-
data = data,
8-
on_prepare = "//src/e2e-app:start-devserver.js",
96
server = "//src/e2e-app:server",
107
tags = tags,
118
deps = deps,

Diff for: src/universal-app/BUILD.bazel

+2-4
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
load("@bazel_skylib//rules:build_test.bzl", "build_test")
22
load("@aspect_rules_js//js:defs.bzl", "js_binary", "js_run_binary")
3-
load("//tools:defaults.bzl", "http_server", "protractor_web_test_suite", "sass_binary")
4-
load("//tools:defaults2.bzl", "ng_project", "ts_project")
3+
load("//tools:defaults.bzl", "protractor_web_test_suite", "sass_binary")
4+
load("//tools:defaults2.bzl", "http_server", "ng_project", "ts_project")
55
load("@aspect_rules_ts//ts:defs.bzl", rules_js_tsconfig = "ts_config")
66
load("@aspect_rules_esbuild//esbuild:defs.bzl", "esbuild")
77
load("//src/cdk:config.bzl", "CDK_TARGETS")
@@ -165,8 +165,6 @@ ts_project(
165165

166166
protractor_web_test_suite(
167167
name = "hydration_e2e_tests",
168-
configuration = ":protractor.conf.js",
169-
on_prepare = ":start-devserver.js",
170168
server = ":server",
171169
tags = ["e2e"],
172170
deps = [

Diff for: src/universal-app/protractor.conf.js

-12
This file was deleted.

Diff for: src/universal-app/start-devserver.js

-21
This file was deleted.

Diff for: tools/defaults.bzl

+18-6
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,14 @@ load("@io_bazel_rules_sass//:defs.bzl", _npm_sass_library = "npm_sass_library",
66
load("@npm//@angular/bazel:index.bzl", _ng_package = "ng_package")
77
load("@npm//@angular/build-tooling/bazel/integration:index.bzl", _integration_test = "integration_test")
88
load("@npm//@angular/build-tooling/bazel/esbuild:index.bzl", _esbuild = "esbuild", _esbuild_config = "esbuild_config")
9-
load("@npm//@angular/build-tooling/bazel/http-server:index.bzl", _http_server = "http_server")
109
load("@npm//@angular/build-tooling/bazel:extract_js_module_output.bzl", "extract_js_module_output")
1110
load("//:packages.bzl", "NO_STAMP_NPM_PACKAGE_SUBSTITUTIONS", "NPM_PACKAGE_SUBSTITUTIONS")
1211
load("//:pkg-externals.bzl", "PKG_EXTERNALS")
1312
load("//tools/markdown-to-html:index.bzl", _markdown_to_html = "markdown_to_html")
1413
load("//tools/extract-tokens:index.bzl", _extract_tokens = "extract_tokens")
1514
load("//tools/bazel:ng_package_interop.bzl", "ng_package_interop")
1615
load("//tools:defaults2.bzl", "spec_bundle", _karma_web_test_suite = "karma_web_test_suite")
17-
load("@npm//@bazel/protractor:index.bzl", _protractor_web_test_suite = "protractor_web_test_suite")
16+
load("@rules_browsers//src/protractor_test:index.bzl", "protractor_test")
1817

1918
npmPackageSubstitutions = select({
2019
"//tools:stamp": NPM_PACKAGE_SUBSTITUTIONS,
@@ -27,7 +26,6 @@ integration_test = _integration_test
2726
extract_tokens = _extract_tokens
2827
esbuild = _esbuild
2928
esbuild_config = _esbuild_config
30-
http_server = _http_server
3129
karma_web_test_suite = _karma_web_test_suite
3230

3331
def sass_binary(sourcemap = False, include_paths = [], **kwargs):
@@ -148,10 +146,24 @@ def protractor_web_test_suite(name, deps, **kwargs):
148146
external = ["protractor", "selenium-webdriver"],
149147
)
150148

151-
_protractor_web_test_suite(
149+
protractor_test(
152150
name = name,
153-
browsers = ["@npm//@angular/build-tooling/bazel/browsers/chromium:chromium"],
154-
deps = ["%s_bundle" % name],
151+
deps = [":%s_bundle" % name],
152+
extra_config = {
153+
"useAllAngular2AppRoots": True,
154+
"allScriptsTimeout": 120000,
155+
"getPageTimeout": 120000,
156+
"jasmineNodeOpts": {
157+
"defaultTimeoutInterval": 120000,
158+
},
159+
# Since we want to use async/await we don't want to mix up with selenium's promise
160+
# manager. In order to enforce this, we disable the promise manager.
161+
"SELENIUM_PROMISE_MANAGER": False,
162+
},
163+
data = [
164+
"//:node_modules/protractor",
165+
"//:node_modules/selenium-webdriver",
166+
],
155167
**kwargs
156168
)
157169

Diff for: tools/defaults2.bzl

+2
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,10 @@ load("@aspect_rules_js//npm:defs.bzl", _npm_package = "npm_package")
55
load("@rules_angular//src/ng_project:index.bzl", _ng_project = "ng_project")
66
load("@devinfra//bazel/spec-bundling:index_rjs.bzl", _spec_bundle = "spec_bundle")
77
load("@rules_browsers//src/wtr:index.bzl", "wtr_test")
8+
load("@devinfra//bazel/http-server:index.bzl", _http_server = "http_server")
89

910
spec_bundle = _spec_bundle
11+
http_server = _http_server
1012

1113
def npm_package(**kwargs):
1214
_npm_package(**kwargs)

0 commit comments

Comments
 (0)