Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

5.0.0 Release #2905

Merged
merged 64 commits into from
Aug 19, 2020
Merged
Show file tree
Hide file tree
Changes from 56 commits
Commits
Show all changes
64 commits
Select commit Hold shift + click to select a range
ee18eac
Init changelog
jennifer-shehane Jun 23, 2020
90e3379
Merge branch 'develop' into 5.0.0-release
jennifer-shehane Jun 25, 2020
9c092c8
Began writing migration guide for 5.0
jennifer-shehane Jun 25, 2020
e44365a
rename 'blocklistHosts' to newly named 'blockHosts'
jennifer-shehane Jun 26, 2020
f100b9c
Add new linux deps to migration guide
jennifer-shehane Jun 26, 2020
c2f478b
Add migration guide for Cypress.Blob
jennifer-shehane Jun 29, 2020
ec5e615
Add test retry section to migration guide
jennifer-shehane Jun 29, 2020
c76c043
docs: note updated Electron libgbm req (#2931)
flotwig Jun 29, 2020
627cb2a
docs: document experimentalGetCookiesSameSite removal (#2918)
flotwig Jun 29, 2020
b21a2cd
Node.js 10+ for install (#2933)
jennifer-shehane Jun 30, 2020
75916ff
Merge branch 'develop' into 5.0.0-release
jennifer-shehane Jun 30, 2020
de3c20d
Merge branch 'develop' into 5.0.0-release
jennifer-shehane Jun 30, 2020
d9265ee
Alphabetize cookie object return, explain which props only log when s…
jennifer-shehane Jun 30, 2020
cf66d9d
Add section to migration guide for sameSite cookies changes
jennifer-shehane Jun 30, 2020
dca4c4e
Write 5.0 changelog
jennifer-shehane Jun 30, 2020
d607100
Rename uses of whitelist for renamed options. (#2928)
jennifer-shehane Jun 30, 2020
3df2487
Add issues from 4.10.0 to changelog
jennifer-shehane Jun 30, 2020
2a2fe52
Add TypeScript req to migration guide
jennifer-shehane Jun 30, 2020
1005b59
Update source/guides/references/migration-guide.md
jennifer-shehane Jun 30, 2020
6dea7a3
Clarify note about previous min TS version
jennifer-shehane Jun 30, 2020
1eb57b1
Update typescript doc to specify minimum required TS version (#2945)
jennifer-shehane Jul 6, 2020
aef241e
Updates for blob from 5.0 (#2938)
jennifer-shehane Jul 7, 2020
479d674
remove issues released in 4.10.0
jennifer-shehane Jul 7, 2020
0e35b96
Clarify the exact issues that are fixed in Changelog.
jennifer-shehane Jul 7, 2020
b6a77ea
Rename configuration option blacklistHosts to blocklistHosts (#2861)
laiscoolblue Jul 13, 2020
ce1fd91
Merge branch 'develop' into 5.0.0-release
jennifer-shehane Jul 23, 2020
1e291c1
Merge branch 'develop' into 5.0.0-release
jennifer-shehane Aug 4, 2020
be76f63
Remove mention of test retries being on by default in 5.0.
jennifer-shehane Aug 4, 2020
eed06ad
Update 5.0 doc to correctly mention test-retries + breaking changes.
jennifer-shehane Aug 4, 2020
38769de
Add section for Module API results changing to migration guide
jennifer-shehane Aug 5, 2020
b256a7c
Update Module API & migration guide to reflect order + props of new t…
jennifer-shehane Aug 6, 2020
c7665ac
Merge branch 'develop' into 5.0.0-release
jennifer-shehane Aug 6, 2020
096c449
Mention that screenshots are different in test retries of migration g…
jennifer-shehane Aug 10, 2020
8cad0cd
Merge branch 'develop' into 5.0.0-release
jennifer-shehane Aug 10, 2020
370bc23
Add 4.13.0 issues to 5.0 changelog
jennifer-shehane Aug 10, 2020
7c9c5e2
Add runs tab design to changelog
jennifer-shehane Aug 10, 2020
7af7a40
Bump electron version
jennifer-shehane Aug 10, 2020
845161b
Merge branch 'develop' into 5.0.0-release
jennifer-shehane Aug 11, 2020
4568eb4
Add section to migration guide about esModuleInterop change (#3053)
chrisbreiding Aug 11, 2020
355a90b
Update default preprocessor references from browserify to webpack (#3…
chrisbreiding Aug 11, 2020
aab6c9d
Add webpack preprocessor + esModuleInterop updates to changelog.
jennifer-shehane Aug 11, 2020
090a284
Add closed issue from the test-retries branch to 5.0 changelog
jennifer-shehane Aug 11, 2020
60a6719
Add bytes fix to changelog
jennifer-shehane Aug 11, 2020
f5fbe09
docs: 5.0.0 release docs test retries (#2925)
bencodezen Aug 13, 2020
c10e363
Merge branch 'develop' into 5.0.0-release
jennifer-shehane Aug 13, 2020
2586ac4
Add newly closed issues to 5.0.0 changelog
jennifer-shehane Aug 14, 2020
66ec2fb
Move 'experimental' thing to a fix instead of feature
jennifer-shehane Aug 14, 2020
35a487d
Add newly closed fix to 5.0 changelog
jennifer-shehane Aug 17, 2020
d1bc7df
Add more newly closed issues to changelog
jennifer-shehane Aug 17, 2020
776929a
Add doc for click modifiers. (#3062)
sainthkh Aug 17, 2020
9c9a389
Add section to 5.0 migration guide about __dirname / __filename (#3076)
chrisbreiding Aug 17, 2020
7b2a8d1
blocklistHosts -> blacklistHosts
chrisbreiding Aug 17, 2020
a09e0d7
Add note about __dirname/__filename to changelog
chrisbreiding Aug 17, 2020
468f8a6
Fix typo
chrisbreiding Aug 17, 2020
e9d5af1
Merge branch 'develop' into 5.0.0-release
jennifer-shehane Aug 18, 2020
fcb6272
add release date
chrisbreiding Aug 18, 2020
5ec93ae
add note about scrollintoview shadow dom fix
chrisbreiding Aug 18, 2020
a1c0cd0
update release date
chrisbreiding Aug 18, 2020
953c4a2
try increasing --max-old-space-size for build
jennifer-shehane Aug 19, 2020
121c395
try increasing --max-old-space-size to 8192
chrisbreiding Aug 19, 2020
b36d31c
fix mistakenly typed character
chrisbreiding Aug 19, 2020
18563a0
fix another one
chrisbreiding Aug 19, 2020
b1a87d0
don't revision mp4 files
chrisbreiding Aug 19, 2020
de92e52
don't revision .woff, .woff2, or .less files
chrisbreiding Aug 19, 2020
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
2 changes: 1 addition & 1 deletion .textlintrc
Expand Up @@ -86,7 +86,7 @@
["craziest", "most complex"],
["dumb", "unintended"],
["insane", "outrageous"],
["blacklist", "blocklist"],
["blacklist", "block"],
["whitelist", "allow"],

// Prefer American spelling
Expand Down
2 changes: 1 addition & 1 deletion cypress.json
Expand Up @@ -2,5 +2,5 @@
"baseUrl": "http://localhost:2222",
"projectId": "ma3dkn",
"viewportWidth": 1500,
"blacklistHosts": ["trackcmp.net", "js.hs-analytics.net", "js.hs-scripts.com"]
"blockHosts": ["trackcmp.net", "js.hs-analytics.net", "js.hs-scripts.com"]
}
16 changes: 16 additions & 0 deletions lib/tags/usage.js
Expand Up @@ -45,6 +45,22 @@ module.exports = function usageOptions (hexo, args) {
withinSubject: () => {
return 'Element to search for children in. If null, search begins from root-level DOM element'
},

ctrlKey: () => {
return 'Activates the control key. Aliases: <code>controlKey</code>.'
},

altKey: () => {
return 'Activates the alt key (option key for Mac). Aliases: <code>optionKey</code>.'
},

shiftKey: () => {
return 'Activates the shift key.'
},

metaKey: () => {
return 'Activates the meta key (Windows key or command key for Mac). Aliases: <code>commandKey</code>, <code>cmdKey</code>.'
},
}

const blurb = blurbs[opt]
Expand Down
3 changes: 1 addition & 2 deletions source/_changelogs/1.1.2.md
Expand Up @@ -11,9 +11,8 @@

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

72 changes: 72 additions & 0 deletions source/_changelogs/5.0.0.md
@@ -0,0 +1,72 @@
# 5.0.0

*Released 8/18/2020*

**Summary:**

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.

**Breaking Changes:**

**{% 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.**

- 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 %}.
- The {% url "`Cypress.Cookies.defaults()`" cookies %} `whitelist` option has been renamed to `preserve` to more closely reflect its behavior. Addressed in {% issue 7782 %}.
- The `blacklistHosts` configuration has been renamed to {% url "`blockHosts`" configuration#Notes %} to more closely reflect its behavior. Addressed in {% issue 7622 %}.
- The {% url "`cy.server()`" server %} `whitelist` option has been renamed to `ignore` to more closely reflect its behavior. Addresses {% issue 6642 %}.
- `libgbm-dev` is now a requirement to run Cypress on Linux. Addressed in {% PR 7791 %}.
- 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 %}.
- The `experimentalGetCookiesSameSite` configuration flag has been removed, since this behavior is now the default. Addresses {% issue 6892 %}.
- 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 %}.
- 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 %}.
- 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 %}.
- Cypress now requires TypeScript 3.4+. Addressed in {% issue 7856 %}.
- Installing Cypress on your system now requires Node.js 10+. Addresses {% issue 6574 %}.
- In spec files, the values for the globals `__dirname` and `__filename` no longer include leading slashes. Addressed in {% PR 7982 %}.

chrisbreiding marked this conversation as resolved.
Show resolved Hide resolved
**Features:**

- There's a new `retries` configuration option to configure the number of times to retry a failing test. Addresses {% issue 1313 %}.
- {% 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 %}.
- 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 %}.

**Bugfixes:**

- 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 %}.
- Cypress will no longer throw a `Cannot read property 'isAttached' of undefined` error during `cypress run` on Firefox versions >= 75. Fixes {% PR 6813 %}.
chrisbreiding marked this conversation as resolved.
Show resolved Hide resolved
- Cypress {% url "environment variables" environment-variables %} that accept arrays as their value will now properly evaluate as arrays. Fixes {% issue 6810 %}.
- Elements having `display: inline` will no longer be considered hidden if it has child elements within it that are visible. Fixes {% issue 6183 %}.
- 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 %}.
- 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 %}.
- 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 %}.
- Taking screenshots will no longer fail when the screenshot names are too long for the filesystem to accept. Fixes {% issue 2403 %}.
- The "last used browser" will now be correctly remembered during `cypress open` if a non-default-channel browser was selected. Fixes {% issue 8281 %}.
- 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 %}.
- `reporterStats` now correctly show the number of passed and failed tests when a test passes but the `afterEach` fails. Fixes {% issue 7730 %}.
- The Developer Tools menu will now always display in Electron when switching focus from Specs to the Test Runner. Fixes {% PR 3559 %}.

**Documentation Changes:**

- We have a new guide on Test Retries.
- Our {% url "Migration Guide" migration-guide %} has a new section for 5.0 migration.

**Misc:**

- Cypress now uses the {% url "webpack preprocessor" https://github.com/cypress-io/cypress-webpack-preprocessor %} by default to preprocess spec files.
- 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 %}.
- The type for the `Window` object returned from {% url "`cy.window()`" window %} is now correct. Addresses {% issue 7856 %}.
- The type definition for Cypress's `ApplicationWindow` can now be extended. Addresses {% issue 7856 %}.
- The type definition for `reporterOptions` has been added. Addresses {% issue 7877 %}.

**Dependency Updates**

- Upgraded Chrome browser version used during cypress run and when selecting Electron browser in cypress open from `80` to `83`. Addressed in {% PR 7791 %}.
- Upgraded bundled Node.js version from `12.8.1` to `12.14.1`. Addressed in {% PR 7791 %}.
- Upgraded `chalk` from `2.4.2` to `4.1.0`. Addressed in {% PR 7650 %}.
- Upgraded `cli-table3` from `0.5.1` to `0.6.0`. Addressed in {% PR 7650 %}.
- Upgraded `electron` from `8.3.1` to `9.2.0`. Addressed in {% PR 7791 %} and {% PR 8235 %}.
- Upgraded `execa` from `1.0.0` to `4.0.2`. Addressed in {% PR 7650 %}.
- Upgraded `express` from `4.16.4` to `4.17.1`. Addressed in {% PR 8179 %}.
- Upgraded `fs-extra` from `8.1.0` to `9.0.1`. Addressed in {% PR 7650 %}.
- Upgraded `log-symbols` from `3.0.0` to `4.0.0`. Addressed in {% PR 7650 %}.
- Upgraded `tmp` from `0.1.0` to `0.2.1`. Addressed in {% PR 7650 %}.
1 change: 1 addition & 0 deletions source/_data/sidebar.yml
Expand Up @@ -28,6 +28,7 @@ guides:
module-api: module-api.html
debugging: debugging.html
network-requests: network-requests.html
test-retries: test-retries.html
continuous-integration: continuous-integration.html
parallelization: parallelization.html
environment-variables: environment-variables.html
Expand Down
1 change: 1 addition & 0 deletions source/_partial/allowed_test_config.md
Expand Up @@ -8,6 +8,7 @@
- `env`
- `requestTimeout`
- `responseTimeout`
- `retries`
- `viewportHeight`
- `viewportWidth`
- `waitForAnimations`
8 changes: 4 additions & 4 deletions source/_partial/linux_dependencies.md
@@ -1,13 +1,13 @@
#### Ubuntu/Debian

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

#### CentOS

```shell
yum install -y xorg-x11-server-Xvfb gtk2-devel gtk3-devel libnotify-devel GConf2
nss libXScrnSaver alsa-lib
yum install -y xorg-x11-server-Xvfb gtk2-devel gtk3-devel libnotify-devel
GConf2 nss libXScrnSaver alsa-lib
```
33 changes: 20 additions & 13 deletions source/api/commands/click.md
Expand Up @@ -54,9 +54,13 @@ Pass in an options object to change the default behavior of `.click()`.

Option | Default | Description
--- | --- | ---
`altKey` | `false` | {% usage_options altKey %}
`ctrlKey` | `false` | {% usage_options ctrlKey %}
`log` | `true` | {% usage_options log %}
`force` | `false` | {% usage_options force click %}
`metaKey` | `false` | {% usage_options metaKey %}
`multiple` | `false` | {% usage_options multiple click %}
`shiftKey` | `false` | {% usage_options shiftKey %}
`timeout` | {% url `defaultCommandTimeout` configuration#Timeouts %} | {% usage_options timeout .click %}

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

## Click with key combinations
### Click with key combinations

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.
The `.click()` command may also be fired with key modifiers in order to simulate holding key combinations while clicking, such as `ALT + click`.

The following modifiers can be combined with `.click()`.
{% note info %}
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.
{% endnote %}

Sequence | Notes
The following keys can be combined with `.click()` through the `options`.

Option | Notes
--- | ---
`{alt}` | Activates the `altKey` modifier. Aliases: `{option}`
`{ctrl}` | Activates the `ctrlKey` modifier. Aliases: `{control}`
`{meta}` | Activates the `metaKey` modifier. Aliases: `{command}`, `{cmd}`
`{shift}` | Activates the `shiftKey` modifier.
`altKey` | {% usage_options altKey %}
`ctrlKey` | {% usage_options ctrlKey %}
`metaKey` | {% usage_options metaKey %}
`shiftKey` | {% usage_options shiftKey %}

### Shift click
#### Shift click

```js
// execute a SHIFT + click on the first <li>
// { release: false } is necessary so that
// SHIFT will not be released after the type command
cy.get('body').type('{shift}', { release: false })
cy.get('li:first').click()
cy.get('li:first').click({
shiftKey: true
})
```

# Notes
Expand Down
33 changes: 20 additions & 13 deletions source/api/commands/dblclick.md
Expand Up @@ -54,9 +54,13 @@ Pass in an options object to change the default behavior of `.dblclick()`.

Option | Default | Description
--- | --- | ---
`altKey` | `false` | {% usage_options altKey %}
`ctrlKey` | `false` | {% usage_options ctrlKey %}
`log` | `true` | {% usage_options log %}
`force` | `false` | {% usage_options force dblclick %}
`metaKey` | `false` | {% usage_options metaKey %}
`multiple` | `true` | {% usage_options multiple dblclick %}
`shiftKey` | `false` | {% usage_options shiftKey %}
`timeout` | {% url `defaultCommandTimeout` configuration#Timeouts %} | {% usage_options timeout .dblclick %}

## Yields {% helper_icon yields %}
Expand Down Expand Up @@ -125,27 +129,30 @@ You can turn this off by passing `multiple: false` to `.dblclick()`.
cy.get('button').dblclick({ multiple: false })
```

## Double click with key combinations
### Double click with key combinations

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

{% note info %}
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.
{% endnote %}

The following modifiers can be combined with `.dblclick()`.

Sequence | Notes
Option | Notes
--- | ---
`{alt}` | Activates the `altKey` modifier. Aliases: `{option}`
`{ctrl}` | Activates the `ctrlKey` modifier. Aliases: `{control}`
`{meta}` | Activates the `metaKey` modifier. Aliases: `{command}`, `{cmd}`
`{shift}` | Activates the `shiftKey` modifier.
`altKey` | {% usage_options altKey %}
`ctrlKey` | {% usage_options ctrlKey %}
`metaKey` | {% usage_options metaKey %}
`shiftKey` | {% usage_options shiftKey %}

### Alt click
#### Alt click

```js
// execute a ALT + dblclick on the first <li>
// { release: false } is necessary so that
// ALT will not be released after the type command
cy.get('body').type('{alt}', { release: false })
cy.get('li:first').dblclick()
// execute ALT + dblclick on the first <li>
cy.get('li:first').dblclick({
altKey: true
})
```

# Notes
Expand Down
13 changes: 7 additions & 6 deletions source/api/commands/getcookie.md
Expand Up @@ -38,14 +38,14 @@ Option | Default | Description

`cy.getCookie()` yields a cookie object with the following properties:

- `name`
- `value`
- `path`
- `domain`
- `expiry` *(if specified)*
- `httpOnly`
- `name`
- `path`
- `sameSite` *(if specified)*
- `secure`
- `expiry`
- `sameSite` *(will only be returned if the {% url "`experimentalGetCookiesSameSite`" configuration#Experiments %} configuration value is `true`)*
- `value`

### When a cookie matching the name could not be found:

Expand Down Expand Up @@ -140,7 +140,8 @@ When clicking on `getCookie` within the command log, the console outputs the fol
{% imgTag /img/api/getcookie/inspect-cookie-object-properties-in-console.png "Console Log getcookie" %}

{% history %}
{% url "4.3.0" changelog#4-3-0 %} | Added `sameSite` property when the {% url "`experimentalGetCookiesSameSite`" configuration#Experiments %} configuration value is `true`.
{% url "5.0.0" changelog#5-0-0 %} | Removed `experimentalGetCookiesSameSite` and made `sameSite` property always available.
{% url "4.3.0" changelog#4-3-0 %} | Added `sameSite` property when the `experimentalGetCookiesSameSite` configuration value is `true`.
{% endhistory %}

# See also
Expand Down
11 changes: 6 additions & 5 deletions source/api/commands/getcookies.md
Expand Up @@ -34,14 +34,14 @@ Option | Default | Description

`cy.getCookies()` yields an array of cookie objects. Each cookie object has the following properties:

- `name`
- `value`
- `path`
- `domain`
- `expiry` *(if specified)*
- `httpOnly`
- `name`
- `path`
- `sameSite` *(if specified)*
- `secure`
- `expiry`
- `sameSite` *(will only be returned if the {% url "`experimentalGetCookiesSameSite`" configuration#Experiments %} configuration value is `true`)*
- `value`

# Examples

Expand Down Expand Up @@ -98,6 +98,7 @@ When clicking on `getCookies` within the command log, the console outputs the fo
{% imgTag /img/api/getcookies/test-application-cookies.png "Console Log getcookies" %}

{% history %}
{% url "5.0.0" changelog#5-0-0 %} | Removed `experimentalGetCookiesSameSite` and made `sameSite` property always available.
{% url "4.3.0" changelog#4-3-0 %} | Added `sameSite` property when the {% url "`experimentalGetCookiesSameSite`" configuration#Experiments %} configuration value is `true`.
{% endhistory %}

Expand Down
33 changes: 20 additions & 13 deletions source/api/commands/rightclick.md
Expand Up @@ -58,9 +58,13 @@ Pass in an options object to change the default behavior of `.rightclick()`.

Option | Default | Description
--- | --- | ---
`altKey` | `false` | {% usage_options altKey %}
`ctrlKey` | `false` | {% usage_options ctrlKey %}
`log` | `true` | {% usage_options log %}
`force` | `false` | {% usage_options force rightclick %}
`metaKey` | `false` | {% usage_options metaKey %}
`multiple` | `false` | {% usage_options multiple rightclick %}
`shiftKey` | `false` | {% usage_options shiftKey %}
`timeout` | {% url `defaultCommandTimeout` configuration#Timeouts %} | {% usage_options timeout .rightclick %}

## Yields {% helper_icon yields %}
Expand Down Expand Up @@ -127,27 +131,30 @@ By default, Cypress will error if you're trying to right click multiple elements
cy.get('.open-menu').rightclick({ multiple: true })
```

## Right click with key combinations
### Right click with key combinations

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

The following modifiers can be combined with `.rightclick()`.
{% note info %}
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.
{% endnote %}

The following key can be combined with `.rightclick()` through the `options`..

Sequence | Notes
Option | Notes
--- | ---
`{alt}` | Activates the `altKey` modifier. Aliases: `{option}`
`{ctrl}` | Activates the `ctrlKey` modifier. Aliases: `{control}`
`{meta}` | Activates the `metaKey` modifier. Aliases: `{command}`, `{cmd}`
`{shift}` | Activates the `shiftKey` modifier.
`altKey` | {% usage_options altKey %}
`ctrlKey` | {% usage_options ctrlKey %}
`metaKey` | {% usage_options metaKey %}
`shiftKey` | {% usage_options shiftKey %}

### Command right click
#### Command right click

```js
// execute a CMD + right click on the .menu-item
// { release: false } is necessary so that
// CMD will not be released after the type command
cy.get('body').type('{cmd}', { release: false })
cy.get('.menu-item').rightclick()
cy.get('.menu-item').rightclick({
metaKey: true
})
```

# Notes
Expand Down