angular-cn/integration
Kara Erickson 3e03dbe576 refactor(ivy): flatten hooks and collapse LView hook properties (#21650)
PR Close #21650
2018-01-24 22:14:33 -08:00
..
bazel build: Update to latest rules_typescript. (#21675) 2018-01-22 15:32:59 -08:00
dynamic-compiler build: pin ChromeDriver version (#20940) 2017-12-11 15:53:04 -08:00
hello_world__closure build: pin ChromeDriver version (#20940) 2017-12-11 15:53:04 -08:00
hello_world__render3__closure refactor(ivy): move onDestroys out of cleanup (#21650) 2018-01-24 22:14:33 -08:00
hello_world__render3__rollup refactor(ivy): flatten hooks and collapse LView hook properties (#21650) 2018-01-24 22:14:33 -08:00
hello_world__systemjs_umd build: upgrade to TypeScript 2.6 (#21144) 2017-12-22 20:15:47 -08:00
i18n build: pin ChromeDriver version (#20940) 2017-12-11 15:53:04 -08:00
language_service_plugin build: remove references to `tsc-wrapped` (#19298) 2017-09-21 13:55:52 -07:00
typings_test_ts24 build: upgrade to TypeScript 2.6 (#21144) 2017-12-22 20:15:47 -08:00
typings_test_ts25 build: upgrade to TypeScript 2.6 (#21144) 2017-12-22 20:15:47 -08:00
typings_test_ts26 build: upgrade to TypeScript 2.6 (#21144) 2017-12-22 20:15:47 -08:00
.gitignore test: add cli integration test (#18738) 2017-08-16 22:00:36 -05:00
README.md build: switch from npm to yarn (#19328) 2017-09-22 13:20:52 -07:00
_payload-limits.json refactor(ivy): flatten hooks and collapse LView hook properties (#21650) 2018-01-24 22:14:33 -08:00
ng-cli-create.sh perf(compiler): make the creation of `ts.Program` faster. (#19275) 2017-09-19 16:55:23 -07:00
run_tests.sh test(ivy): add render3 integration tests (#21557) 2018-01-19 15:23:52 -08:00

README.md

Integration tests for Angular

This directory contains end-to-end tests for Angular. Each directory is a self-contained application that exactly mimics how a user might expect Angular to work, so they allow high-fidelity reproductions of real-world issues.

For this to work, we first build the Angular distribution just like we would publish it to npm, then install the distribution into each app.

Writing an integration test

The API for each test is:

  • Each sub-directory here is an integration test
  • Each test should have a package.json file
  • The test runner will run yarn and yarn test on the package

This means that the test should be started by test script, like

'scripts' { 'test': 'runProgramA && assertResultIsGood' }

Note that the package.json file uses a special file://../../dist scheme to reference the Angular packages, so that the locally-built Angular is installed into the test app.

Also, beware of floating (non-locked) dependencies. If in doubt you can install the package directly from file:../../node_modules.

Running integration tests

You can iterate on the tests by keeping the dist folder up-to-date. See the package.json of the test(s) you're debugging, to see which dist/ folders they install from. Then run the right tsc --watch command to keep those dist folders up-to-date, for example:

$ ./node_modules/.bin/tsc -p packages/core/tsconfig-build.json --watch

Now you can run the integration test, it will re-install from the dist/ folder on each run.

$ ./integration/run_tests.sh