opened
gregmagolan
username_0
This means integration tests no longer need to depend on a $CI_CHROMEDRIVER_VERSION_ARG environment variable to specify which chromedriver version to download to match the locally installed chrome. This was bad DX and not having it specified was not reliable as webdriver-manager would not always download the chromedriver version to work with the locally installed chrome.

`webdriver-manager update --gecko=false --standalone=false $CI_CHROMEDRIVER_VERSION_ARG` is now replaced with `node webdriver-manager-update.js` in the root package.json, which checks which version of chrome puppeteer has come bundled with & downloads informs webdriver-manager to download the corresponding chrome driver version.

Integration tests now use `"webdriver-manager": "file:../../node_modules/webdriver-manager"` and set resolution for it as well so they don't have to waste type calling webdriver-manager update in postinstall
```
"// resolutions": "Ensure a single version of webdriver-manager which comes from root node_modules that has already run webdriver-manager update",
"resolutions": {
"webdriver-manager": "file:../../node_modules/webdriver-manager"
}
```
This should speed up each integration postinstall by a few seconds.

Further, integration test package.json files link puppeteer via `file:../../node_modules/puppeteer` which is the ideal situation as the puppeteer post-install won't download chrome if it is already downloaded. In CI, since node_modules is cached it should not need to download Chrome either unless the node_modules cache is busted.

NB: each version of puppeteer comes bundles with a specific version of chrome. Root package.json & yarn.lock currently pull down puppeteer 2.1.0 which comes with chrome 80. See https://github.com/puppeteer/puppeteer#q-which-chromium-version-does-puppeteer-use for more info.


## PR Checklist
Please check if your PR fulfills the following requirements:

- [x] The commit message follows our guidelines: https://github.com/angular/angular/blob/master/CONTRIBUTING.md#commit
- [x] Tests for the changes have been added (for bug fixes / features)
- [ ] Docs have been added / updated (for bug fixes / features)


## PR Type
What kind of change does this PR introduce?

<!-- Please check the one that applies to this PR using "x". -->

- [ ] Bugfix
- [ ] Feature
- [ ] Code style update (formatting, local variables)
- [ ] Refactoring (no functional changes, no api changes)
- [ ] Build related changes
- [ ] CI related changes
- [ ] Documentation content changes
- [ ] angular.io application / infrastructure changes
- [x] Other... Please describe: integration test changes 


## What is the current behavior?
<!-- Please describe the current behavior that you are modifying, or link to a relevant issue. -->

Issue Number: N/A


## What is the new behavior?


## Does this PR introduce a breaking change?

- [ ] Yes
- [x] No


<!-- If this PR contains a breaking change, please describe the impact and migration path for existing applications below. -->


## Other information
test: use puppeteer in integration tests and to download correct chromedriver
issue
created
gregmagolan
username_0
BONUS: updated the aio build to use puppeteer as well so it no longer depends on `CI_CHROMEDRIVER_VERSION_ARG`.

Only two references to `CI_CHROMEDRIVER_VERSION_ARG` left:
1) integration/bazel-schematics/test.sh which I'm not entirely sure how to get rid of it <== @kyliau 
2) aio/tools/examples/shared/package.json which I'm not hesitant to touch as its used for examples
comment
created
gregmagolan
username_0
aio changes included back into this PR at Igor's request after all the review comments & Igor reviewed both.

https://github.com/angular/angular/pull/35102 now just testing CI job for this PR that only run on master
comment
created
gregmagolan
username_0
@gkalpak I switch the PWA score test to use protractor. Couldn't figure out the doc examples so will leave that to you :)
comment
created
IgorMinar
username_1
let's see if @filipesilva or @gkalpak have anything else to add. I believe that all their feedback has been addressed.
comment