Skip to content

Commit 87adb56

Browse files
authored
feat(click): Add support for ctrl click. (testing-library#271)
We pass the `init` argument through so that the underlying click event can be created with ctrlKey set to true if desired.
1 parent 2bb7def commit 87adb56

File tree

2 files changed

+13
-4
lines changed

2 files changed

+13
-4
lines changed

README.md

+9
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,15 @@ test("click", () => {
8787
});
8888
```
8989

90+
You can also ctrlClick / shiftClick etc with
91+
92+
```js
93+
userEvent.click(elem, { ctrlKey: true, shiftKey: true })
94+
```
95+
96+
See the [`MouseEvent`](https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/MouseEvent)
97+
constructor documentation for more options.
98+
9099
### `dblClick(element)`
91100

92101
Clicks `element` twice, depending on what `element` is it can have different

src/index.js

+4-4
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ function clickBooleanElement(element) {
4141
fireEvent.click(element);
4242
}
4343

44-
function clickElement(element, previousElement) {
44+
function clickElement(element, previousElement, init) {
4545
fireEvent.mouseOver(element);
4646
fireEvent.mouseMove(element);
4747
const continueDefaultHandling = fireEvent.mouseDown(element);
@@ -50,7 +50,7 @@ function clickElement(element, previousElement) {
5050
element.focus();
5151
}
5252
fireEvent.mouseUp(element);
53-
fireEvent.click(element);
53+
fireEvent.click(element, init);
5454

5555
const labelAncestor = findTagInParents(element, "LABEL");
5656
labelAncestor && clickLabel(labelAncestor);
@@ -132,7 +132,7 @@ function selectAll(element) {
132132
}
133133

134134
const userEvent = {
135-
click(element) {
135+
click(element, init) {
136136
const focusedElement = element.ownerDocument.activeElement;
137137
const wasAnotherElementFocused =
138138
focusedElement !== element.ownerDocument.body &&
@@ -152,7 +152,7 @@ const userEvent = {
152152
break;
153153
}
154154
default:
155-
clickElement(element, wasAnotherElementFocused && focusedElement);
155+
clickElement(element, wasAnotherElementFocused && focusedElement, init);
156156
}
157157
},
158158

0 commit comments

Comments
 (0)