Deliver web apps with confidence 🚀
Find a file
Andrew Scott dedac8d3f7 feat(router): Add test helper for trigger navigations in tests (#48552)
In order to test components and services which depend on router navigations, such as `ActivatedRoute` instances, tests currently need to provide a fair bit of boilerplate _or_ they can set up a stub for `ActivatedRoute` and list it in the `providers` to override it in `TestBed`. This approach of stubbing the `ActivatedRoute` creates a situation that can easily cause the test to break. The stub often only mocks out the dependencies that the component/service _currently_ needs. This dependencies might change over time and break the test in an unexpected way. In addition, it is difficult to get the structure of `ActivatedRoute` exactly correct.

This change will allow unit tests to quickly set up routes, trigger real navigations in the Router, and get instances of component's to test along with real instances of `ActivatedRoute`. This all comes without needing to know that the component depends on `ActivatedRoute` at all. This becomes more important when considering that a component may be refactored in the future to use `@Input` rather than access data on the `ActivatedRoute` instance (see #18967). Tests which mock out `ActivatedRoute` would all break, but those which use `navigateForTest` would continue to work without needing any updates.

resolves #15779
resolves #48608

PR Close #48552
2023-01-25 19:31:38 +00:00
.circleci ci: fix snapshot publish github credential preparation (#48648) 2023-01-05 16:44:01 +00:00
.devcontainer build: Fix version of images in recommended-Dockerfile. node:14-browsers doesn't exist anymore in Dockerhub (#48803) 2023-01-24 16:38:32 +00:00
.github build: update cross-repo angular dependencies (#48437) 2023-01-24 18:30:43 +00:00
.husky build: remove unnecessary husky gitignore file (#42870) 2021-07-19 17:31:55 -07:00
.ng-dev build: update google sync config to match internal changes (#48521) 2022-12-19 19:50:45 +00:00
.vscode build: update recommended launch vscode config to use proper bazel dist path (#47831) 2022-10-24 10:42:21 +02:00
.yarn build: update to yarn v1.22.17 (#44150) 2021-11-15 11:19:05 -08:00
aio docs: add new files for HTTP content (#47684) 2023-01-25 18:29:47 +00:00
devtools build(devtools): fix issue where esbuild configs were not being set properly in DevTools (#48762) 2023-01-18 10:45:13 -08:00
docs docs: highlight scripts in markdown (#47778) 2023-01-11 14:54:45 -08:00
goldens feat(router): Add test helper for trigger navigations in tests (#48552) 2023-01-25 19:31:38 +00:00
integration docs: fix simple typo, esnure -> ensure (#48588) 2023-01-10 08:05:33 -08:00
modules refactor: make benchmarking syncing easier and add comments for future insight (#48521) 2022-12-19 19:50:45 +00:00
packages feat(router): Add test helper for trigger navigations in tests (#48552) 2023-01-25 19:31:38 +00:00
scripts build: remove components repo unit tests job (#48521) 2022-12-19 19:50:44 +00:00
third_party build: create NodeJS ESM loader for supporting Bazel setup (#48521) 2022-12-19 19:50:40 +00:00
tools build: update ng-dev and account for stamping changes (#48731) 2023-01-13 14:10:39 +00:00
.bazelignore build: cleanup bazelignore file (#48329) 2022-12-02 09:47:42 -08:00
.bazelrc build: fix AIO jobs not running with RBE and CircleCI Bazel settings (#48316) 2022-12-02 08:57:43 -08:00
.bazelversion build: update to bazel v5 for new runfiles API used in dev-infra (#45407) 2022-03-21 16:55:36 -07: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 build: cleanup .gitattributes file and remove outdated CRLF attribute (#46513) 2022-06-28 13:38:27 -07:00
.gitignore docs: update of landing page and backup pages (#47047) 2022-12-09 16:04:34 -08:00
.gitmessage build: clean up references to old master branch (#45856) 2022-05-04 16:23:33 -07:00
.mailmap build: add a Git .mailmap with my new name (#19550) 2017-10-09 14:35:30 -07:00
.npmrc build: rely on engines to prevent using npm for dependency install (#41477) 2021-04-07 12:05:01 -07:00
.nvmrc feat(core): add support for Node.js version 18 (#47730) 2022-10-11 17:21:19 +00:00
.prettierrc ci: use prettier to format yml files (#42136) 2021-05-19 11:20:20 -07:00
.pullapprove.yml docs: add new files for HTTP content (#47684) 2023-01-25 18:29:47 +00:00
.yarnrc build: update to yarn v1.22.17 (#44150) 2021-11-15 11:19:05 -08:00
browser-providers.conf.js ci: enable Android 12 for tests on CI (#45926) 2022-05-09 11:26:10 -07:00
BUILD.bazel build: bundle tests for karma web test suites (#48521) 2022-12-19 19:50:42 +00:00
CHANGELOG.md release: cut the v15.2.0-next.2 release 2023-01-25 09:09:50 -08:00
CHANGELOG_ARCHIVE.md docs: move old changelog entries to a separate file (#45638) 2022-04-14 15:01:21 -07:00
CODE_OF_CONDUCT.md build: update CODE_OF_CONDUCT.md to match the content of angular/.github 2022-09-15 17:26:46 +00:00
CONTRIBUTING.md docs: fix grammar issues in various markdown files (#47200) 2022-08-22 10:54:56 -07:00
gulpfile.js build: remove the unused source-map-test (#46518) 2022-06-27 15:42:43 -07:00
karma-js.conf.js build: fix legacy saucelabs test bundle generation after ESM changes (#48521) 2022-12-19 19:50:44 +00:00
LICENSE build: bump license year (#44590) 2022-01-04 12:05:25 -08:00
package.json release: cut the v15.2.0-next.2 release 2023-01-25 09:09:50 -08:00
packages.bzl feat(router): Add test helper for trigger navigations in tests (#48552) 2023-01-25 19:31:38 +00:00
README.md docs(core): Improved README.md (#47700) 2022-10-11 15:58:38 +00:00
renovate.json ci: disable renovate from updating marketing-first-app (#48399) 2022-12-09 09:43:29 -08:00
SECURITY.md build: update SECURITY.md to match the content of angular/.github 2023-01-06 08:51:29 +00:00
tsconfig-tslint.json refactor(devtools): run ng-dev format on angular devtools files 2022-01-26 16:35:30 -05:00
tslint.json test: update code fixes spec to work with esm-cjs interop lint (#48731) 2023-01-13 14:10:39 +00:00
WORKSPACE build: update all non-major dependencies (#48755) 2023-01-17 09:16:19 -08:00
yarn.bzl build(bazel): incrementally run aio example e2e tests 2022-11-22 13:51:16 -07:00
yarn.lock build: update cross-repo angular dependencies (#48437) 2023-01-24 18:30:43 +00:00
yarn.lock.readme.md build: clean up references to old master branch (#45856) 2022-05-04 16:23:33 -07:00

Angular - The modern web developer's platform.

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

www.angular.io

Contributing Guidelines · Submit an Issue · Blog

CI status   Angular on npm   Discord conversation

InsightsSnapshot


Documentation

Get started with Angular, learn the fundamentals and explore advanced topics on our documentation website.

Advanced

Development Setup

Prerequisites

Setting Up a Project

Install the Angular CLI globally:

npm install -g @angular/cli

Create workspace:

ng new [PROJECT NAME]

Run the application:

cd [PROJECT NAME]
ng serve

Angular is cross-platform, fast, scalable, has incredible tooling, and is loved by millions.

Quickstart

Get started in 5 minutes.

Ecosystem

angular ecosystem logos

Changelog

Learn about the latest improvements.

Upgrading

Check out our upgrade guide to find out the best way to upgrade your project.

Contributing

Contributing Guidelines

Read through our contributing guidelines to learn about our submission process, coding rules, and more.

Want to Help?

Want to report a bug, contribute some code, or improve the documentation? Excellent! Read up on our guidelines for contributing and then check out one of our issues labeled as help wanted or good first issue.

Code of Conduct

Help us keep Angular open and inclusive. Please read and follow our Code of Conduct.

Community

Join the conversation and help the community.

Love Angular badge

Love Angular? Give our repo a star ⬆️.