Issue: #1313
<!-- Thanks for submitting a pull request! Please provide enough
information so that others can review your pull request. -->
**What kind of change does this PR introduce?**
Feature.
**Did you add tests for your changes?**
Yes.
**If relevant, did you update the documentation?**
Yes.
**Summary**
Supports keyboard shotcuts on MacOS. See Chrome Devtools Protocol
document:
https://chromedevtools.github.io/devtools-protocol/tot/Input/#method-dispatchKeyEvent.
Bumps [cosmiconfig](https://github.com/davidtheclark/cosmiconfig) from
7.0.1 to 8.0.0.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/davidtheclark/cosmiconfig/blob/main/CHANGELOG.md">cosmiconfig's
changelog</a>.</em></p>
<blockquote>
<h2>8.0.0</h2>
<p><strong>No major breaking changes!</strong> We dropped support for
Node 10 and 12 -- which you're probably not using. And we swapped out
the YAML parser -- which you probably won't notice.</p>
<ul>
<li><strong>Breaking change:</strong> Drop support for Node 10 and
12.</li>
<li><strong>Breaking change:</strong> Use npm package <a
href="https://www.npmjs.com/package/js-yaml">js-yaml</a> to parse YAML
instead of npm package <a
href="https://www.npmjs.com/package/yaml">yaml</a>.</li>
<li>Added: Loader errors now include the path of the file that was tried
to be loaded.</li>
</ul>
<h2>7.1.0</h2>
<ul>
<li>Added: Additional default <code>searchPlaces</code> within a .config
subdirectory (without leading dot in the file name)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/davidtheclark/cosmiconfig/commits">compare
view</a></li>
</ul>
</details>
<details>
<summary>Maintainer changes</summary>
<p>This version was pushed to npm by <a
href="https://www.npmjs.com/~d-fischer">d-fischer</a>, a new releaser
for cosmiconfig since your current version.</p>
</details>
<br />
[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=cosmiconfig&package-manager=npm_and_yarn&previous-version=7.0.1&new-version=8.0.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
</details>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [@angular-devkit/core](https://github.com/angular/angular-cli)
from 14.2.7 to 15.0.1.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/angular/angular-cli/releases"><code>@angular-devkit/core</code>'s
releases</a>.</em></p>
<blockquote>
<h2>v15.0.1</h2>
<p><!-- raw HTML omitted --><!-- raw HTML omitted --></p>
<h1>15.0.1 (2022-11-23)</h1>
<h3><code>@schematics/angular</code></h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="48426852b0"><img
src="https://img.shields.io/badge/48426852b-fix-green" alt="fix -
48426852b" /></a></td>
<td>show warning when a TS Config is not found during migrations</td>
</tr>
</tbody>
</table>
<h3><code>@angular/cli</code></h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="eda96def48"><img
src="https://img.shields.io/badge/eda96def4-fix-green" alt="fix -
eda96def4" /></a></td>
<td>use global version of the CLI when running <code>ng new</code></td>
</tr>
</tbody>
</table>
<h3><code>@angular-devkit/build-angular</code></h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="2af32fd3a9"><img
src="https://img.shields.io/badge/2af32fd3a-fix-green" alt="fix -
2af32fd3a" /></a></td>
<td>hide loader paths in webpack warnings</td>
</tr>
<tr>
<td><a
href="19f5cc746e"><img
src="https://img.shields.io/badge/19f5cc746-fix-green" alt="fix -
19f5cc746" /></a></td>
<td>improve package deep import Sass index resolution in esbuild
plugin</td>
</tr>
<tr>
<td><a
href="2220a907da"><img
src="https://img.shields.io/badge/2220a907d-fix-green" alt="fix -
2220a907d" /></a></td>
<td>use url function lexer to rebase Sass URLs</td>
</tr>
</tbody>
</table>
<h2>Special Thanks</h2>
<p>Alan Agius, Charles Lyding, Doug Parker, Joey Perrott and Piotr
Wysocki</p>
<h2>v15.0.0</h2>
<p><!-- raw HTML omitted --><!-- raw HTML omitted --></p>
<h1>15.0.0 (2022-11-16)</h1>
<h2>Breaking Changes</h2>
<h3><code>@angular/cli</code></h3>
<ul>
<li>The Angular CLI no longer supports <code>16.10.x</code>,
<code>16.11.x</code> and <code>16.12.x</code>. Current supported
versions of Node.js are <code>14.20.x</code>, <code>16.13.x</code> and
<code>18.10.x</code>.</li>
<li>Node.js versions older than 14.20 are no longer supported.</li>
<li>The 'path' option in schematics schema no longer has a special
meaning. Use 'workingDirectory' smart default provider should be used
instead.</li>
</ul>
<h3><code>@schematics/angular</code></h3>
<ul>
<li>Removed unused<code>appDir</code> option from Universal and
App-Shell schematic. This option can safely be removed if present since
it no longer has effect.</li>
</ul>
<h3></h3>
<ul>
<li>
<p><code>analyticsSharing</code> option in the global angular
configuration has been
removed without replacement. This option was used to configure the
Angular CLI to access to your own users' CLI usage data.</p>
<p>If this option is used, it can be removed using <code>ng config
--global cli.analyticsSharing undefined</code>.</p>
</li>
<li>
<p>analytics APIs have been removed without replacement from
<code>@angular-devkit/core</code> and
<code>@angular-devkit/architect</code>.</p>
</li>
</ul>
<h3><code>@angular-devkit/build-angular</code></h3>
<ul>
<li>
<p>TypeScript versions older than 4.8.2 are no longer supported.</p>
</li>
<li>
<p>The server builder <code>bundleDependencies</code> option has been
removed. This option was used pre Ivy. Currently, using this option is
unlikely to produce working server bundles.</p>
<p>The <code>externalDependencies</code> option can be used instead to
exclude specific node_module packages from the final bundle.</p>
</li>
<li>
<ul>
<li>Deprecated support for tilde import has been removed. Please update
the imports by removing the <code>~</code>.</li>
</ul>
<p>Before</p>
<pre lang="scss"><code>@import
"~font-awesome/scss/font-awesome";
</code></pre>
<p>After</p>
<pre lang="scss"><code></code></pre>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/angular/angular-cli/blob/main/CHANGELOG.md"><code>@angular-devkit/core</code>'s
changelog</a>.</em></p>
<blockquote>
<h1>15.0.1 (2022-11-23)</h1>
<h3><code>@angular/cli</code></h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="eda96def48">eda96def4</a></td>
<td>fix</td>
<td>use global version of the CLI when running <code>ng new</code></td>
</tr>
</tbody>
</table>
<h3><code>@schematics/angular</code></h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="48426852b0">48426852b</a></td>
<td>fix</td>
<td>show warning when a TS Config is not found during migrations</td>
</tr>
</tbody>
</table>
<h3><code>@angular-devkit/build-angular</code></h3>
<table>
<thead>
<tr>
<th>Commit</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><a
href="2af32fd3a9">2af32fd3a</a></td>
<td>fix</td>
<td>hide loader paths in webpack warnings</td>
</tr>
<tr>
<td><a
href="19f5cc746e">19f5cc746</a></td>
<td>fix</td>
<td>improve package deep import Sass index resolution in esbuild
plugin</td>
</tr>
<tr>
<td><a
href="2220a907da">2220a907d</a></td>
<td>fix</td>
<td>use url function lexer to rebase Sass URLs</td>
</tr>
</tbody>
</table>
<h2>Special Thanks</h2>
<p>Alan Agius, Charles Lyding, Doug Parker, Joey Perrott and Piotr
Wysocki</p>
<!-- raw HTML omitted -->
<p><!-- raw HTML omitted --><!-- raw HTML omitted --></p>
<h1>15.0.0 (2022-11-16)</h1>
<h2>Breaking Changes</h2>
<h3><code>@angular/cli</code></h3>
<ul>
<li>The Angular CLI no longer supports <code>16.10.x</code>,
<code>16.11.x</code> and <code>16.12.x</code>. Current minimum versions
of Node.js are <code>14.20.0</code>, <code>16.13.0</code> and
<code>18.10.0</code>.</li>
<li>Node.js versions older than 14.20 are no longer supported.</li>
<li>The 'path' option in schematics schema no longer has a special
meaning. Use 'workingDirectory' smart default provider should be used
instead.</li>
</ul>
<h3><code>@schematics/angular</code></h3>
<ul>
<li>Removed unused <code>appDir</code> option from Universal and
App-Shell schematic. This option can safely be removed if present since
it no longer has effect.</li>
</ul>
<h3></h3>
<ul>
<li>
<p><code>analyticsSharing</code> option in the global angular
configuration has been
removed without replacement. This option was used to configure the
Angular CLI to access to your own users' CLI usage data.</p>
<p>If this option is used, it can be removed using <code>ng config
--global cli.analyticsSharing undefined</code>.</p>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="324f8da02b"><code>324f8da</code></a>
release: cut the v15.0.1 release</li>
<li><a
href="2af32fd3a9"><code>2af32fd</code></a>
fix(<code>@angular-devkit/build-angular</code>): hide loader paths in
webpack warnings</li>
<li><a
href="2220a907da"><code>2220a90</code></a>
fix(<code>@angular-devkit/build-angular</code>): use url function lexer
to rebase Sass URLs</li>
<li><a
href="fc0d9241c7"><code>fc0d924</code></a>
ci: update browser-tools</li>
<li><a
href="19f5cc746e"><code>19f5cc7</code></a>
fix(<code>@angular-devkit/build-angular</code>): improve package deep
import Sass index re...</li>
<li><a
href="52f63b19b5"><code>52f63b1</code></a>
build: enable the ng-dev auth service</li>
<li><a
href="ba1f571dca"><code>ba1f571</code></a>
build: remove <code>regenerator-runtime</code> from dependencies</li>
<li><a
href="cc6cad7867"><code>cc6cad7</code></a>
build: enable the assistant-to-the-branch-manager github action</li>
<li><a
href="51d17d4d70"><code>51d17d4</code></a>
ci: fix update test to work when <code>@angular/cli</code> and
<code>@angular/core</code> majors di...</li>
<li><a
href="48426852b0"><code>4842685</code></a>
fix(<code>@schematics/angular</code>): show warning when a TS Config is
not found during m...</li>
<li>Additional commits viewable in <a
href="https://github.com/angular/angular-cli/compare/14.2.7...15.0.1">compare
view</a></li>
</ul>
</details>
<br />
[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@angular-devkit/core&package-manager=npm_and_yarn&previous-version=14.2.7&new-version=15.0.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
</details>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
**What kind of change does this PR introduce?**
I have browsers pool in some cloud. I want that only users with access
will be able to connect to them. So they must provide token through
headers. But puppeteer does not allow to send headers when connected to
browser by ws connection. So I added this feature.
Closes#7218
**What kind of change does this PR introduce?**
Spawn own server when running `ng e2e`. Give user option to not replace
`ng e2e`.
**Did you add tests for your changes?**
Yes.
**If relevant, did you update the documentation?**
Yes, `ng-schematics` README.md updated.
**Summary**
When running `ng-schematics`'s `ng e2e` command spawns it's own server.
This way we remove the need of developers to run `ng server` separately
thus increasing ease of use in development and CI.
We want to support Protractor migration so we give the user the option
to opt out of replacing `ng e2e` so they can have a gradual migration.
(Note: There may be issues with folder conflicts, to be address in a PR
for adding better Migration support)
**Does this PR introduce a breaking change?**
Yes, as we don't check if required options are there before spawning the
server.
**Other information**
Co-authored-by: Alex Rudenko <OrKoN@users.noreply.github.com>
Removes `include-component-in-tag` from the release please config which
means that Puppeteer package releases will now be following the format
`puppeteer-vX.X.X`. Also, this PR updates the docker publishing action
to correctly parse such a tag to extract the `X.X.X` part, that is to be
used as the docker image label.
**What kind of change does this PR introduce?**
Better type inference.
**Did you add tests for your changes?**
~Not yet.~ Yes.
**If relevant, did you update the documentation?**
Not yet.
**Summary**
<!-- Explain the **motivation** for making this change. What existing
problem does the pull request solve? -->
<!-- Try to link to an open issue for more information. -->
Currently methods that return an element handle, i.e. `.$`,
`.waitForSelector` attempt to infer the node element type from the
selector string. However, this only works when the selector is an exact
match of the element tag, i.e. a selector `"a"` would be inferred as
`HTMLAnchorElement` . And not when the selector is complex, i.e.
selectors `"a#some-id"`, `div > a`, `a:nth-child(2)` would all fallback
on `Element`.
This is due to simply looking up the the selector in
`HTMLElementTagNameMap` and `SVGElementTagNameMap` without any attempt
to parse the selector string.
This PR is an attempt to do so.
**Does this PR introduce a breaking change?**
<!-- If this PR introduces a breaking change, please describe the impact
and a migration path for existing applications. -->
This could break existing incorrect assertions using the `as` keyword.
**Other information**
~This PR introduces a dependency on the `type-fest` package.~
This PR is far from complete (no tests, no docs). Put out early for
feedback and discussion.
Co-authored-by: Alex Rudenko <OrKoN@users.noreply.github.com>
**What kind of change does this PR introduce?**
This replaces the default `ng e2e` with our custom builder. In the
feature it seem possible to remove the necessity of the user running the
server separately and run it from the builder - that will improve the
easy of use and CI of this schematic.
**Did you add tests for your changes?**
**If relevant, did you update the documentation?**
Yes - Updated `@puppeteer/ng-schematics` README.md
**Summary**
We want to not see the default `ng e2e` and we want to make it easier
for the user to run commands.
Angular Developer are likely to also use its' CLI.
**Does this PR introduce a breaking change?**
Yes. Users need to delete the default and initialize the schematics
again.
**Other information**
The previous selector is broken as of ~2 months ago, c.f.
https://news.ycombinator.com/item?id=33027700
Changed from:
<a class="titlelink"></a>
To:
<span class="titleline">
<a></a>
</span>
**What kind of change does this PR introduce?**
Adds `@puppeteer/ng-schematics` to the list of packages to be published
to `npm`
**Did you add tests for your changes?**
Not relevant.
**If relevant, did you update the documentation?**
Not for in this PR.
**Summary**
We want to publish to `npm` so people can do `ng add
@puppeteer/ng-schematics` and use it with Angular CLI.
**Does this PR introduce a breaking change?**
No
**Other information**
**What kind of change does this PR introduce?**
It lets Users create an schematic for Puppeteer in Angular project using
Node's new test runner.
**Did you add tests for your changes?**
Yes. Unit test for module.
**If relevant, did you update the documentation?**
No
**Summary**
**Does this PR introduce a breaking change?**
No
**Other information**
**What kind of change does this PR introduce?**
Adds Mocha as option for `ng-schematics`
**Did you add tests for your changes?**
Yes
**If relevant, did you update the documentation?**
No
**Summary**
User want a simple solution for the Testing library of their choose
**Does this PR introduce a breaking change?**
No
**Other information**
There are some improvements around the Babel that we can make so we
don't have duplicate code and files (In a Feature PR)
**What kind of change does this PR introduce?**
Adds Jest in `ng-schematics`. So you can scaffold test with Jest instead
of Jasmine
**Did you add tests for your changes?**
Yes
**If relevant, did you update the documentation?**
No
**Summary**
Users can more easily integrate test with Puppeteer and their library of
choose.
**Does this PR introduce a breaking change?**
No
**Other information**
**What kind of change does this PR introduce?**
Add CI for testing Schematics.
**Did you add tests for your changes?**
Not relevant.
**If relevant, did you update the documentation?**
Not relevant.
**Summary**
We want to check if tests for `@puppeteer/ng-schematics` are passing
after
**Does this PR introduce a breaking change?**
No
**Other information**
**What kind of change does this PR introduce?**
It introduces schematic for Angular that integrate with its CLI.
First revision support Jasmine.
**Did you add tests for your changes?**
Added Unit tests for each scenario.
**Summary**
The idea is to provide a an example for setting up Puppeteer and Angular
for testing user flows.
**Does this PR introduce a breaking change?**
No
**Other information**
For Feature PRs:
- Introduce CL for tests
- Hook up NPM package publishing
- Update README.md