Skip to content

Commit 55a2c1c

Browse files
jennifer-shehaneflotwigrenovate-bothiwanzrenovate[bot]
authored
5.0.0 Release (#2905)
Co-authored-by: Zach Bloomquist <github@chary.us> Co-authored-by: Jennifer Shehane <shehane.jennifer@gmail.com> Co-authored-by: Jennifer Shehane <jennifer@cypress.io> Co-authored-by: Renovate Bot <bot@renovateapp.com> Co-authored-by: 丸子 <princeb4d@gmail.com> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Jessica Sachs <jess@jessicasachs.io> Co-authored-by: Ben Kucera <14625260+Bkucera@users.noreply.github.com> Co-authored-by: Laís Tomaz <41899092+laiscoolblue@users.noreply.github.com> Co-authored-by: Chris Breiding <chrisbreiding@users.noreply.github.com> Co-authored-by: Ben Hong <ben@bencodezen.io> Co-authored-by: Kukhyeon Heo <sainthkh@naver.com> Co-authored-by: Chris Breiding <chrisbreiding@gmail.com>
1 parent 156bd38 commit 55a2c1c

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

45 files changed

+920
-151
lines changed

.textlintrc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@
8686
["craziest", "most complex"],
8787
["dumb", "unintended"],
8888
["insane", "outrageous"],
89-
["blacklist", "blocklist"],
89+
["blacklist", "block"],
9090
["whitelist", "allow"],
9191

9292
// Prefer American spelling

cypress.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,5 +2,5 @@
22
"baseUrl": "http://localhost:2222",
33
"projectId": "ma3dkn",
44
"viewportWidth": 1500,
5-
"blacklistHosts": ["trackcmp.net", "js.hs-analytics.net", "js.hs-scripts.com"]
5+
"blockHosts": ["trackcmp.net", "js.hs-analytics.net", "js.hs-scripts.com"]
66
}

gulpfile.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ const RevAll = require('gulp-rev-all')
33
const clean = require('gulp-clean')
44

55
const revisionOpts = {
6-
dontGlobal: ['.ico', 'sitemap.xml', 'sitemap.xsl', 'logo.png', 'logo@2x.png'],
6+
dontGlobal: ['.ico', 'sitemap.xml', 'sitemap.xsl', 'logo.png', 'logo@2x.png', '.mp4', '.woff', '.woff2', '.less'],
77
dontRenameFile: ['.html', 'CNAME'],
88
dontUpdateReference: ['.html'],
99
dontSearchFile: ['.js'],

lib/tags/usage.js

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,22 @@ module.exports = function usageOptions (hexo, args) {
4545
withinSubject: () => {
4646
return 'Element to search for children in. If null, search begins from root-level DOM element'
4747
},
48+
49+
ctrlKey: () => {
50+
return 'Activates the control key. Aliases: <code>controlKey</code>.'
51+
},
52+
53+
altKey: () => {
54+
return 'Activates the alt key (option key for Mac). Aliases: <code>optionKey</code>.'
55+
},
56+
57+
shiftKey: () => {
58+
return 'Activates the shift key.'
59+
},
60+
61+
metaKey: () => {
62+
return 'Activates the meta key (Windows key or command key for Mac). Aliases: <code>commandKey</code>, <code>cmdKey</code>.'
63+
},
4864
}
4965

5066
const blurb = blurbs[opt]

source/_changelogs/1.1.2.md

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,8 @@
1111

1212
- {% url 'Added ESLint, Docker, and TypeScript to Plugins' plugins %}
1313
- {% url 'Added recipe for TypeScript with Browserify' recipes %}
14-
- {% url 'Added recipe for TypeScript with Webpack' recipes %}
14+
- {% url 'Added recipe for TypeScript with webpack' recipes %}
1515
- {% url 'Added recipe for Direct Controlling AngularJS' recipes %}
1616
- {% url 'Added recipe for E2E API Testing' recipes %}
1717
- {% url 'Added more video tutorials' tutorials %}
1818
- {% url 'Improved displaying list of Tutorials, Recipes, Applications, and Docker examples' recipes %}
19-

source/_changelogs/5.0.0.md

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
# 5.0.0
2+
3+
*Released 8/19/2020*
4+
5+
**Summary:**
6+
7+
Cypress now includes support for test retries! Similar to how Cypress will retry assertions when they fail, test retries will allow you to automatically retry a failed test prior to marking it as failed. Read our new guide on Test Retries for more details.
8+
9+
**Breaking Changes:**
10+
11+
**{% fa fa-exclamation-triangle red %} Please read our {% url "Migration Guide" migration-guide %} which explains the changes in more detail and how to change your code to migrate to Cypress 5.0.**
12+
13+
- The {% url "`cypress-plugin-retries`" https://github.com/Bkucera/cypress-plugin-retries %} plugin has been deprecated in favor of test retries built into Cypress. Addresses {% issue 1313 %}.
14+
- The {% url "`Cypress.Cookies.defaults()`" cookies %} `whitelist` option has been renamed to `preserve` to more closely reflect its behavior. Addressed in {% issue 7782 %}.
15+
- The `blacklistHosts` configuration has been renamed to {% url "`blockHosts`" configuration#Notes %} to more closely reflect its behavior. Addressed in {% issue 7622 %}.
16+
- The {% url "`cy.server()`" server %} `whitelist` option has been renamed to `ignore` to more closely reflect its behavior. Addresses {% issue 6642 %}.
17+
- `libgbm-dev` is now a requirement to run Cypress on Linux. Addressed in {% PR 7791 %}.
18+
- Values yielded by {% url "`cy.setCookie()`" setcookie %}, {% url "`cy.getCookie()`" getcookie %}, and {% url "`cy.getCookies()`" getcookies %} will now contain the `sameSite` property if specified. Addresses {% issue 6892 %}.
19+
- The `experimentalGetCookiesSameSite` configuration flag has been removed, since this behavior is now the default. Addresses {% issue 6892 %}.
20+
- The return type of the {% url "`Cypress.Blob`" blob %} methods `arrayBufferToBlob`, `base64StringToBlob`, `binaryStringToBlob`, and `dataURLToBlob` have changed from `Promise<Blob>` to `Blob`. Addresses {% issue 6001 %}.
21+
- Cypress no longer supports file paths with a question mark `?` in them. We now use the {% url "webpack preprocessor" https://github.com/cypress-io/cypress-webpack-preprocessor %} by default and it does not support files with question marks. Addressed in {% PR 7982 %}.
22+
- For TypeScript compilation of spec, support, and plugins files, the `esModuleInterop` option is no longer coerced to `true`. If you need to utilize `esModuleInterop`, set it in your `tsconfig.json`. Addresses {% issue 7575 %}.
23+
- Cypress now requires TypeScript 3.4+. Addressed in {% issue 7856 %}.
24+
- Installing Cypress on your system now requires Node.js 10+. Addresses {% issue 6574 %}.
25+
- In spec files, the values for the globals `__dirname` and `__filename` no longer include leading slashes. Addressed in {% PR 7982 %}.
26+
27+
**Features:**
28+
29+
- There's a new `retries` configuration option to configure the number of times to retry a failing test. Addresses {% issue 1313 %}.
30+
- {% url "`.click()`" click %}, {% url "`.dblclick()`" dblclick %}, and {% url "`.rightclick()`" rightclick %} now accept options `altKey`, `ctrlKey`, `metaKey`, and `shiftKey` to hold down key combinations while clicking. Addresses {% issue 486 %}.
31+
- You can now chain `.snapshot()` off of `cy.stub()` and `cy.spy()` to disabled snapshots during those commands. For example: `cy.stub().snapshot(false)`. Addresses {% issue 3849 %}.
32+
33+
**Bugfixes:**
34+
35+
- The error `Cannot set property 'err' of undefined` will no longer incorrectly throw when rerunning tests in the Test Runner. Fixes {% issue 7874 %} and {% issue 8193 %}.
36+
- Cypress will no longer throw a `Cannot read property 'isAttached' of undefined` error during `cypress run` on Firefox versions >= 75. Fixes {% PR 6813 %}.
37+
- The error `Maximum call stack size exceeded` will no longer throw when calling `scrollIntoView` on an element in the shadow dom. Fixes {% issue 7986 %}.
38+
- Cypress {% url "environment variables" environment-variables %} that accept arrays as their value will now properly evaluate as arrays. Fixes {% issue 6810 %}.
39+
- Elements having `display: inline` will no longer be considered hidden if it has child elements within it that are visible. Fixes {% issue 6183 %}.
40+
- When {% url "`experimentalShadowDomSupport`" experiments %} is enabled, {% url "`.parent()`" parent %} and {% url "`.parentsUntil()`" parentsuntil %} commands now work correctly in shadow dom as well as passing a selector to {% url "`.parents()`" parents %} when the subject is in the shadow dom. Fixed in {% PR 8202 %}.
41+
- Screenshots will now be correctly taken when a test fails in an `afterEach` or `beforeEach` hook after the hook has already passed. Fixes {% issue 3744 %}.
42+
- Cypress will no longer report screenshots overwritten in a `cy.screenshot()` {% url "`onAfterScreenshot`" screenshot#Get-screenshot-info-from-the-onAfterScreenshot-callback %} option as a unique screenshot. Fixes {% issue 8079 %}.
43+
- Taking screenshots will no longer fail when the screenshot names are too long for the filesystem to accept. Fixes {% issue 2403 %}.
44+
- The "last used browser" will now be correctly remembered during `cypress open` if a non-default-channel browser was selected. Fixes {% issue 8281 %}.
45+
- For TypeScript projects, `tsconfig.json` will now be loaded and used to configure TypeScript compilation of spec and support files. Fixes {% issue 7006 %} and {% issue 7503 %}.
46+
- `reporterStats` now correctly show the number of passed and failed tests when a test passes but the `afterEach` fails. Fixes {% issue 7730 %}.
47+
- The Developer Tools menu will now always display in Electron when switching focus from Specs to the Test Runner. Fixes {% PR 3559 %}.
48+
49+
**Documentation Changes:**
50+
51+
- We have a new guide on Test Retries.
52+
- Our {% url "Migration Guide" migration-guide %} has a new section for 5.0 migration.
53+
54+
**Misc:**
55+
56+
- Cypress now uses the {% url "webpack preprocessor" https://github.com/cypress-io/cypress-webpack-preprocessor %} by default to preprocess spec files.
57+
- The **Runs** tab within the Test Runner has a new improved design when the project has not been set up or login is required. Addressed in {% PR 8141 %}.
58+
- The type for the `Window` object returned from {% url "`cy.window()`" window %} is now correct. Addresses {% issue 7856 %}.
59+
- The type definition for Cypress's `ApplicationWindow` can now be extended. Addresses {% issue 7856 %}.
60+
- The type definition for `reporterOptions` has been added. Addresses {% issue 7877 %}.
61+
62+
**Dependency Updates**
63+
64+
- Upgraded Chrome browser version used during cypress run and when selecting Electron browser in cypress open from `80` to `83`. Addressed in {% PR 7791 %}.
65+
- Upgraded bundled Node.js version from `12.8.1` to `12.14.1`. Addressed in {% PR 7791 %}.
66+
- Upgraded `chalk` from `2.4.2` to `4.1.0`. Addressed in {% PR 7650 %}.
67+
- Upgraded `cli-table3` from `0.5.1` to `0.6.0`. Addressed in {% PR 7650 %}.
68+
- Upgraded `electron` from `8.3.1` to `9.2.0`. Addressed in {% PR 7791 %} and {% PR 8235 %}.
69+
- Upgraded `execa` from `1.0.0` to `4.0.2`. Addressed in {% PR 7650 %}.
70+
- Upgraded `express` from `4.16.4` to `4.17.1`. Addressed in {% PR 8179 %}.
71+
- Upgraded `fs-extra` from `8.1.0` to `9.0.1`. Addressed in {% PR 7650 %}.
72+
- Upgraded `log-symbols` from `3.0.0` to `4.0.0`. Addressed in {% PR 7650 %}.
73+
- Upgraded `tmp` from `0.1.0` to `0.2.1`. Addressed in {% PR 7650 %}.

source/_data/sidebar.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ guides:
2828
module-api: module-api.html
2929
debugging: debugging.html
3030
network-requests: network-requests.html
31+
test-retries: test-retries.html
3132
continuous-integration: continuous-integration.html
3233
parallelization: parallelization.html
3334
environment-variables: environment-variables.html

source/_partial/allowed_test_config.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
- `env`
99
- `requestTimeout`
1010
- `responseTimeout`
11+
- `retries`
1112
- `viewportHeight`
1213
- `viewportWidth`
1314
- `waitForAnimations`
Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
#### Ubuntu/Debian
22

33
```shell
4-
apt-get install libgtk2.0-0 libgtk-3-0 libnotify-dev libgconf-2-4 libnss3 libxss1
5-
libasound2 libxtst6 xauth xvfb
4+
apt-get install libgtk2.0-0 libgtk-3-0 libgbm-dev libnotify-dev libgconf-2-4
5+
libnss3 libxss1 libasound2 libxtst6 xauth xvfb
66
```
77

88
#### CentOS
99

1010
```shell
11-
yum install -y xorg-x11-server-Xvfb gtk2-devel gtk3-devel libnotify-devel GConf2
12-
nss libXScrnSaver alsa-lib
11+
yum install -y xorg-x11-server-Xvfb gtk2-devel gtk3-devel libnotify-devel
12+
GConf2 nss libXScrnSaver alsa-lib
1313
```

source/api/commands/click.md

Lines changed: 20 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -54,9 +54,13 @@ Pass in an options object to change the default behavior of `.click()`.
5454

5555
Option | Default | Description
5656
--- | --- | ---
57+
`altKey` | `false` | {% usage_options altKey %}
58+
`ctrlKey` | `false` | {% usage_options ctrlKey %}
5759
`log` | `true` | {% usage_options log %}
5860
`force` | `false` | {% usage_options force click %}
61+
`metaKey` | `false` | {% usage_options metaKey %}
5962
`multiple` | `false` | {% usage_options multiple click %}
63+
`shiftKey` | `false` | {% usage_options shiftKey %}
6064
`timeout` | {% url `defaultCommandTimeout` configuration#Timeouts %} | {% usage_options timeout .click %}
6165

6266
## Yields {% helper_icon yields %}
@@ -124,27 +128,30 @@ By default, Cypress will error if you're trying to click multiple elements. By p
124128
cy.get('[id^=btn]').click({ multiple: true })
125129
```
126130

127-
## Click with key combinations
131+
### Click with key combinations
128132

129-
The `.click()` command may also be fired with key modifiers in combination with the {% url "`.type()`" type %} command in order to simulate character sequences while clicking, such as `ALT + click`. In order to keep the modifier key active, `{release: false}` should be passed to the options of the {% url "`.type()`" type %} command.
133+
The `.click()` command may also be fired with key modifiers in order to simulate holding key combinations while clicking, such as `ALT + click`.
130134

131-
The following modifiers can be combined with `.click()`.
135+
{% note info %}
136+
You can also use key combinations during {% url "`.type()`" type %}. This offers options to hold down keys across multiple commands. See {% url "Key Combinations" type#Key-Combinations %} for more information.
137+
{% endnote %}
132138

133-
Sequence | Notes
139+
The following keys can be combined with `.click()` through the `options`.
140+
141+
Option | Notes
134142
--- | ---
135-
`{alt}` | Activates the `altKey` modifier. Aliases: `{option}`
136-
`{ctrl}` | Activates the `ctrlKey` modifier. Aliases: `{control}`
137-
`{meta}` | Activates the `metaKey` modifier. Aliases: `{command}`, `{cmd}`
138-
`{shift}` | Activates the `shiftKey` modifier.
143+
`altKey` | {% usage_options altKey %}
144+
`ctrlKey` | {% usage_options ctrlKey %}
145+
`metaKey` | {% usage_options metaKey %}
146+
`shiftKey` | {% usage_options shiftKey %}
139147

140-
### Shift click
148+
#### Shift click
141149

142150
```js
143151
// execute a SHIFT + click on the first <li>
144-
// { release: false } is necessary so that
145-
// SHIFT will not be released after the type command
146-
cy.get('body').type('{shift}', { release: false })
147-
cy.get('li:first').click()
152+
cy.get('li:first').click({
153+
shiftKey: true
154+
})
148155
```
149156

150157
# Notes

0 commit comments

Comments
 (0)