We can't update the framework to rxjs7 until version 13, because it contains breaking changes, but we can allow users to opt into it since all of our code should be compatible. These changes expand the allowed version range of rxjs and add an integration test to verify that we don't get compilation errors. Note that we also have a test that runs the AIO examples against rxjs 7 already (#42660). Fixes #41897. PR Close #42991
121 lines
4.9 KiB
Python
121 lines
4.9 KiB
Python
load(":angular_integration_test.bzl", "angular_integration_test")
|
|
|
|
# Some integration ports must be managed manually to be unique and in other
|
|
# cases the tests are able to select a random free port.
|
|
#
|
|
# Where `ng e2e` is used we pass `ng e2e --port 0` which prompts the cli
|
|
# to select a random free port for the e2e test. The protractor.conf is
|
|
# automatically updated to use this port.
|
|
#
|
|
# Karma automatically finds a free port so no effort is needed there.
|
|
#
|
|
# The manually configured ports are as follows:
|
|
#
|
|
# TEST PORT CONFIGURATION
|
|
# ==== ==== =============
|
|
# dynamic-compiler 4201 /e2e/browser.config.json: "port": 4201
|
|
# hello_world__closure 4202 /e2e/browser.config.json: "port": 4202
|
|
# hello_world__systemjs_umd 4203 /bs-config.e2e.json: "port": 4203
|
|
# i18n 4204 /e2e/browser.config.json: "port": 4204
|
|
# ng_elements 4205 /e2e/browser.config.json: "port": 4205
|
|
# platform-server 4206 /src/server.ts: app.listen(4206,...
|
|
|
|
# Map of integration tests to tags.
|
|
# A subset of these tests fail or are not meant to be run with ivy bundles. These are tagged
|
|
# "no-ivy-aot".
|
|
INTEGRATION_TESTS = {
|
|
"bazel": {
|
|
"tags": [
|
|
# Bazel-in-bazel tests are resource intensive and should not be over-parallized
|
|
# as they will compete for the resources of other parallel tests slowing
|
|
# everything down. Ask Bazel to allocate multiple CPUs for these tests with "cpu:n" tag.
|
|
"cpu:3",
|
|
"no-ivy-aot",
|
|
],
|
|
},
|
|
"cli-elements-universal": {
|
|
"tags": ["ivy-only"],
|
|
},
|
|
"cli-hello-world": {
|
|
"commands": "payload_size_tracking",
|
|
"tags": ["ivy-only"],
|
|
},
|
|
"cli-hello-world-ivy-compat": {
|
|
"commands": "payload_size_tracking",
|
|
"tags": ["ivy-only"],
|
|
},
|
|
"cli-hello-world-ivy-i18n": {
|
|
"commands": "payload_size_tracking",
|
|
"tags": ["ivy-only"],
|
|
},
|
|
"cli-hello-world-ivy-minimal": {
|
|
"commands": "payload_size_tracking",
|
|
"tags": ["ivy-only"],
|
|
},
|
|
"cli-hello-world-lazy": {
|
|
"commands": "payload_size_tracking",
|
|
"tags": ["ivy-only"],
|
|
},
|
|
"dynamic-compiler": {"tags": ["no-ivy-aot"]},
|
|
"forms": {
|
|
"commands": "payload_size_tracking",
|
|
"tags": ["ivy-only"],
|
|
},
|
|
"hello_world__closure": {
|
|
# TODO: Re-enable the payload_size_tracking command:
|
|
# We should define ngDevMode to false in Closure, but --define only works in the global scope.
|
|
# With ngDevMode not being set to false, this size tracking test provides little value but a lot of
|
|
# headache to continue updating the size.
|
|
"tags": ["no-ivy-aot"],
|
|
},
|
|
"hello_world__systemjs_umd": {
|
|
# Special case for `hello_world__systemjs_umd` test as we want to pin
|
|
# `systems` at version 0.20.2 and not link to the root @npm//systemjs
|
|
# which is stuck at 0.18.10 and can't be updated to 0.20.2 without
|
|
# breaking the legacy saucelabs job.
|
|
"pinned_npm_packages": ["systemjs"],
|
|
},
|
|
"i18n": {"tags": ["no-ivy-aot"]},
|
|
"injectable-def": {"tags": ["no-ivy-aot"]},
|
|
"ivy-i18n": {"tags": ["ivy-only"]},
|
|
"trusted-types": {"tags": ["ivy-only"]},
|
|
"ng_elements": {"tags": ["no-ivy-aot"]},
|
|
"ng_elements_schematics": {"tags": ["ivy-only"]},
|
|
"ng_update": {},
|
|
"ng_update_migrations": {"tags": ["no-ivy-aot"]},
|
|
"ngcc": {"tags": ["no-ivy-aot"]},
|
|
"platform-server": {"tags": ["no-ivy-aot"]},
|
|
"service-worker-schema": {},
|
|
"side-effects": {"tags": ["no-ivy-aot"]},
|
|
"terser": {},
|
|
"typings_test_rxjs7": {},
|
|
"typings_test_ts41": {
|
|
# Special case for `typings_test_ts41` test as we want to pin
|
|
# `typescript` at version 4.1.x for that test and not link to the
|
|
# root @npm//typescript package.
|
|
"pinned_npm_packages": ["typescript"],
|
|
},
|
|
"typings_test_ts42": {
|
|
# Special case for `typings_test_ts42` test as we want to pin
|
|
# `typescript` at version 4.2.x for that test and not link to the
|
|
# root @npm//typescript package.
|
|
"pinned_npm_packages": ["typescript"],
|
|
},
|
|
"typings_test_ts43": {
|
|
# Special case for `typings_test_ts43` test as we want to pin
|
|
# `typescript` at version 4.3.x for that test and not link to the
|
|
# root @npm//typescript package.
|
|
"pinned_npm_packages": ["typescript"],
|
|
},
|
|
}
|
|
|
|
[
|
|
angular_integration_test(
|
|
name = test_folder,
|
|
commands = INTEGRATION_TESTS[test_folder].get("commands", "default"),
|
|
pinned_npm_packages = INTEGRATION_TESTS[test_folder].get("pinned_npm_packages", []),
|
|
tags = INTEGRATION_TESTS[test_folder].get("tags", []),
|
|
)
|
|
for test_folder in INTEGRATION_TESTS
|
|
]
|