Go to file
George Kalpakas 4e17212d44 test(upgrade): properly clean up after tests to avoid errors in unrelated tests (#28013)
Many `ngUpgrade` tests need to manually [bootstrap modules][1] (instead
of using `TestBed` which automatically cleans up) and thus need to also
manually clean up afterwards (e.g. by calling [destroyPlatform()][2]
after each test).

Failing to destroy the platform is usually not a problem, unless the
next test tries to manually destroy it (as a precaution), as happens
[here][3] (among other places).

More specifically, the problem happens, because (as part of the clean-up
happening on platform destruction) upgraded components will try to
[call a method][4] on `angular.element` after `angular` has been
[set to `undefined`][5] (assuming the last test was using the
[withEachNg1Version()][6] helper).

Because the test order is pseudo-random and thus different on each run,
these errors did not always come up and - when they did- they would go
away after a couple of reruns, making them appear as flakes on CI.

(For reference, the issue was introduced in 43c33d566.)

This commit eliminates the issue by always destroying the platform after
each `ngUpgrade` test.

Jira issue: FW-924

[1]: c3aa24c3f9/packages/upgrade/test/static/test_helpers.ts (L21)
[2]: c3aa24c3f9/packages/upgrade/test/static/integration/upgrade_component_spec.ts (L24)
[3]: c3aa24c3f9/packages/elements/test/create-custom-element_spec.ts (L31)
[4]: c3aa24c3f9/packages/upgrade/src/common/upgrade_helper.ts (L134-L135)
[5]: c3aa24c3f9/packages/upgrade/test/common/test_helpers.ts (L115)
[6]: c3aa24c3f9/packages/upgrade/test/common/test_helpers.ts (L31)

PR Close #28013
2019-01-09 10:27:46 -08:00
.buildkite ci: update recommended buildkite VM (#27728) 2019-01-08 10:30:54 -08:00
.circleci ci: compute commit range for rerun workflows (#27775) 2019-01-08 10:37:59 -08:00
.github ci: fix public api rule in codeowners (#27999) 2019-01-08 15:56:13 -08:00
aio docs: use static zip function as an Observable creator. (#26790) 2019-01-08 17:16:45 -08:00
docs build: remove "test.sh" script (#27937) 2019-01-07 15:35:09 -08:00
integration test: fix outDir in TS 3.2 integration test (#27774) 2019-01-08 16:00:26 -08:00
modules build: remove "build.sh" script (#27937) 2019-01-07 15:35:09 -08:00
packages test(upgrade): properly clean up after tests to avoid errors in unrelated tests (#28013) 2019-01-09 10:27:46 -08:00
scripts ci: remove travis ci setup (#27937) 2019-01-07 15:35:09 -08:00
third_party/github.com/bazelbuild/bazel-toolchains/bazelrc build: update to Bazel 0.21.0 (#27935) 2019-01-04 18:38:44 -08:00
tools feat(forms): export NumberValueAccessor & RangeValueAccessor directives (#27743) 2019-01-08 16:36:18 -08:00
.bazelignore build: add aio/tools/examples/shared/node_modules to .bazelignore (#27278) 2018-11-27 10:30:58 -08:00
.bazelrc build: update to Bazel 0.21.0 (#27935) 2019-01-04 18:38:44 -08:00
.clang-format feat(tooling): Add a .clang-format for automated JavaScript formatting. 2015-04-02 08:44:34 -07:00
.editorconfig build: use https link to editorconfig.org in .editorconfig (#27664) 2018-12-18 09:30:09 -08:00
.gitattributes chore: force lf EOL for ts files (#11143) 2016-08-29 12:41:58 -07:00
.gitignore build: introduce remote bazel caching (#27358) 2018-12-06 11:25:03 -08:00
.mailmap build: add a Git .mailmap with my new name (#19550) 2017-10-09 14:35:30 -07:00
.nvmrc build: update .nvmrc file to correct node version (#25992) 2018-09-18 13:11:58 -07:00
BUILD.bazel build: load angular.js minified output in upgrade tests (#27711) 2018-12-18 09:29:27 -08:00
CHANGELOG.md docs: group fixes and features for 7.2.0 in changelog desc (#27974) 2019-01-08 11:28:27 -08:00
CODE_OF_CONDUCT.md docs: fix community tab in GitHub by copying CoC 2018-02-27 19:02:30 -08:00
CONTRIBUTING.md docs: update SAVED_REPLIES and CONTRIBUTING with new issue templates (#27608) 2018-12-11 16:43:57 -08:00
LICENSE docs(common): update copyright years (#21232) 2018-01-04 17:45:36 -05:00
README.md docs: remove Travis status from README (#27973) 2019-01-08 10:38:34 -08:00
WORKSPACE build: enforce minimum Bazel version of 0.21.0 in WORKSPACE so cache works with `yarn bazel` (#27935) 2019-01-04 18:38:44 -08:00
browser-providers.conf.js feat(elements): enable Shadow DOM v1 and slots (#24861) 2018-08-30 21:33:14 -07:00
gulpfile.js build: remove obsolete gulp build task (#27386) 2018-12-05 20:55:32 -08:00
index.bzl style: format .bzl files with buildifier (#23544) 2018-08-08 13:12:07 -07:00
karma-js.conf.js ci: move local and saucelabs unit tests to circle (#27937) 2019-01-07 15:35:09 -08:00
package.json ci: move e2e tests from travis to circleci (#27937) 2019-01-07 15:35:09 -08:00
protractor-e2e.conf.js ci: run legacy e2e tests in parallel (#27937) 2019-01-07 15:35:09 -08:00
protractor-examples-e2e.conf.js ci: run legacy e2e tests in parallel (#27937) 2019-01-07 15:35:09 -08:00
protractor-perf.conf.js ci: configure chrome options for protractor (#26735) 2018-10-26 14:48:05 -04:00
shims_for_IE.js Revert "refactor: add license header to JS files & format files (#12035)" 2016-10-04 14:06:41 -07:00
test-events.js fix(platform-browser): run BLACK_LISTED_EVENTS outside of ngZone (#18993) 2017-09-05 15:33:22 -05:00
test-main.js refactor(core): remove withBody from public testing API (#25171) 2018-07-31 15:09:32 -07:00
tslint.json style: tslint enforces no debugger statements left behind (#25532) 2018-08-16 16:00:22 -07:00
yarn.lock ci: move e2e tests from travis to circleci (#27937) 2019-01-07 15:35:09 -08:00
yarn.lock.readme.md docs: replace npm with yarn in lockfile readme (#25309) 2018-08-06 13:38:13 -07:00

README.md

CircleCI BrowserStack Status Join the chat at https://gitter.im/angular/angular npm version

Angular

Angular is a development platform for building mobile and desktop web applications using Typescript/JavaScript and other languages.

Quickstart

Get started in 5 minutes.

Changelog

Learn about the latest improvements.

Want to help?

Want to file a bug, contribute some code, or improve documentation? Excellent! Read up on our guidelines for contributing and then check out one of our issues in the hotlist: community-help.