Deliver web apps with confidence 🚀
Find a file
Alex Rickabaugh df292c2ce0 fix(ivy): TestBed should not clobber compilation of global-scope modules (#28033)
When an @NgModule decorator executes, the module is added to a queue in
render3/jit/module.ts. Reading an ngComponentDef property causes this queue
to be flushed, ensuring that the component gets the correct module scope
applied.

In before_each.ts, a global beforeEach is added to all Angular tests which
calls TestBed.resetTestingModule() prior to running each test. This in turn
clears the module compilation queue (which is correct behavior, as modules
declared within the test should not leak outside of it via the queue).

So far this is okay. But before the first test runs, the module compilation
queue is full of modules declared in global scope. No definitions have been
read, so no flushes of the queue have been triggered. The global beforeEach
triggers a reset of the queue, aborting all of the in-progress global
compilation, breaking those classes when they're later used in tests.

This commit adds logic to TestBedRender3 to respect the state of the module
queue before the TestBed is first initialized or reset. The queue is flushed
prior to such an operation to ensure global compilation is allowed to finish
properly.

With this fix, a platform-server test now passes (previously the <my-child>
element was not detected as a component, because the encompassing module
never finished compilation.

FW-887 #resolve

PR Close #28033
2019-01-11 11:18:10 -08:00
.buildkite ci: use image based cache for windows BuildKite (#27990) 2019-01-09 10:45:59 -08:00
.circleci docs: document why not using compare-url orb (#28010) 2019-01-10 10:50:30 -08:00
.github ci: add brandonroberts to @angular/docs-infra codeowners (#28023) 2019-01-09 11:50:40 -08:00
aio docs(service-worker): fix example of manually checking for updates (#28020) 2019-01-11 11:17:18 -08:00
docs build: use cross platform workspace_status_command (#27431) 2019-01-09 10:47:13 -08:00
integration fix(ivy): ngcc - identify all ESM5 decorated classes (#27848) 2019-01-11 11:14:01 -08:00
modules build: re-enable disabled e2e tests (#27979) 2019-01-09 10:41:16 -08:00
packages fix(ivy): TestBed should not clobber compilation of global-scope modules (#28033) 2019-01-11 11:18:10 -08:00
scripts build: remove travisci leftovers (#27979) 2019-01-09 10:41:16 -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 refactor(core): improve type for EventEmitter (#27228) 2019-01-10 17:02:52 -08:00
.bazelignore build: add aio/tools/examples/shared/node_modules to .bazelignore (#27278) 2018-11-27 10:30:58 -08:00
.bazelrc build: use cross platform workspace_status_command (#27431) 2019-01-09 10:47:13 -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
browser-providers.conf.js build: remove travisci leftovers (#27979) 2019-01-09 10:41:16 -08: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 build: remove travisci leftovers (#27979) 2019-01-09 10:41:16 -08: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
LICENSE build: bump year (#27880) 2019-01-11 11:15:59 -08:00
package.json build(bazel): Bump @bazel/typescript & @bazel/karma to 0.22.1 (#28031) 2019-01-10 16:49:56 -08:00
protractor-e2e.conf.js build: re-enable disabled e2e tests (#27979) 2019-01-09 10:41:16 -08:00
protractor-examples-e2e.conf.js build: remove travisci leftovers (#27979) 2019-01-09 10:41:16 -08:00
protractor-perf.conf.js build: remove travisci leftovers (#27979) 2019-01-09 10:41:16 -08:00
README.md docs: remove Travis status from README (#27973) 2019-01-08 10:38:34 -08: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
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
yarn.lock build(bazel): Bump @bazel/typescript & @bazel/karma to 0.22.1 (#28031) 2019-01-10 16:49:56 -08:00
yarn.lock.readme.md build: remove travisci leftovers (#27979) 2019-01-09 10:41:16 -08:00

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.