@depup/testing-library__user-event 14.6.6-depup.0 → 14.6.7-depup.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -13,8 +13,8 @@ npm install @depup/testing-library__user-event
13
13
 
14
14
  | Field | Value |
15
15
  |-------|-------|
16
- | Original | [@testing-library/user-event](https://www.npmjs.com/package/@testing-library/user-event) @ 14.6.6 |
17
- | Processed | 2026-08-22 |
16
+ | Original | [@testing-library/user-event](https://www.npmjs.com/package/@testing-library/user-event) @ 14.6.7 |
17
+ | Processed | 2026-09-02 |
18
18
  | Smoke test | failed |
19
19
  | Deps updated | 0 |
20
20
 
package/changes.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "bumped": {},
3
- "timestamp": "2026-08-22T08:07:17.039Z",
3
+ "timestamp": "2026-09-02T08:12:30.522Z",
4
4
  "totalUpdated": 0
5
5
  }
@@ -43,9 +43,15 @@ class DataTransferItemStub {
43
43
  }
44
44
  }
45
45
  }
46
+ function toAsciiLowercase(value) {
47
+ return value.replace(/[A-Z]/g, (char)=>char.toLowerCase());
48
+ }
46
49
  class DataTransferItemListStub extends Array {
47
50
  add(...args) {
48
- const item = new DataTransferItemStub(args[0], args[1]);
51
+ // The spec converts the type to ASCII lowercase here, but - unlike
52
+ // `setData()` - does not replace the `text` and `url` shorthands.
53
+ // https://html.spec.whatwg.org/multipage/dnd.html#dom-datatransferitemlist-add
54
+ const item = typeof args[0] === 'string' ? new DataTransferItemStub(args[0], toAsciiLowercase(args[1])) : new DataTransferItemStub(args[0]);
49
55
  this.push(item);
50
56
  return item;
51
57
  }
@@ -56,6 +62,13 @@ class DataTransferItemListStub extends Array {
56
62
  this.splice(index, 1);
57
63
  }
58
64
  }
65
+ // The spec requires the format to be converted to ASCII lowercase
66
+ // and the shorthands `text` and `url` to be replaced with their MIME types.
67
+ // https://html.spec.whatwg.org/multipage/dnd.html#dom-datatransfer-setdata
68
+ function normalizeFormat(format) {
69
+ const type = toAsciiLowercase(format);
70
+ return type === 'text' ? 'text/plain' : type === 'url' ? 'text/uri-list' : type;
71
+ }
59
72
  function getTypeMatcher(type, exact) {
60
73
  const [group, sub] = type.split('/');
61
74
  const isGroup = !sub || sub === '*';
@@ -67,7 +80,8 @@ function createDataTransferStub(window) {
67
80
  return new class DataTransferStub {
68
81
  getData(format) {
69
82
  var _this_items_find;
70
- const match = (_this_items_find = this.items.find(getTypeMatcher(format, true))) !== null && _this_items_find !== void 0 ? _this_items_find : this.items.find(getTypeMatcher(format, false));
83
+ const type = normalizeFormat(format);
84
+ const match = (_this_items_find = this.items.find(getTypeMatcher(type, true))) !== null && _this_items_find !== void 0 ? _this_items_find : this.items.find(getTypeMatcher(type, false));
71
85
  let text = '';
72
86
  match === null || match === void 0 ? void 0 : match.getAsString((t)=>{
73
87
  text = t;
@@ -75,8 +89,9 @@ function createDataTransferStub(window) {
75
89
  return text;
76
90
  }
77
91
  setData(format, data) {
78
- const matchIndex = this.items.findIndex(getTypeMatcher(format, true));
79
- const item = new DataTransferItemStub(data, format);
92
+ const type = normalizeFormat(format);
93
+ const matchIndex = this.items.findIndex(getTypeMatcher(type, true));
94
+ const item = new DataTransferItemStub(data, type);
80
95
  if (matchIndex >= 0) {
81
96
  this.items.splice(matchIndex, 1, item);
82
97
  } else {
@@ -85,7 +100,8 @@ function createDataTransferStub(window) {
85
100
  }
86
101
  clearData(format) {
87
102
  if (format) {
88
- const matchIndex = this.items.findIndex(getTypeMatcher(format, true));
103
+ const type = normalizeFormat(format);
104
+ const matchIndex = this.items.findIndex(getTypeMatcher(type, true));
89
105
  if (matchIndex >= 0) {
90
106
  this.items.remove(matchIndex);
91
107
  }
@@ -1,6 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var isDisabled = require('../misc/isDisabled.js');
4
+ var isElementType = require('../misc/isElementType.js');
4
5
 
5
6
  function getActiveElement(document) {
6
7
  const activeElement = document.activeElement;
@@ -9,6 +10,11 @@ function getActiveElement(document) {
9
10
  if (activeElementInShadowTree) {
10
11
  return activeElementInShadowTree;
11
12
  }
13
+ } else if (activeElement && isElementType.isElementType(activeElement, 'iframe')) {
14
+ const contentDocument = activeElement.contentDocument;
15
+ if (contentDocument) {
16
+ return getActiveElement(contentDocument);
17
+ }
12
18
  }
13
19
  // Browser does not yield disabled elements as document.activeElement - jsdom does
14
20
  if (isDisabled.isDisabled(activeElement)) {
@@ -41,9 +41,15 @@ class DataTransferItemStub {
41
41
  }
42
42
  }
43
43
  }
44
+ function toAsciiLowercase(value) {
45
+ return value.replace(/[A-Z]/g, (char)=>char.toLowerCase());
46
+ }
44
47
  class DataTransferItemListStub extends Array {
45
48
  add(...args) {
46
- const item = new DataTransferItemStub(args[0], args[1]);
49
+ // The spec converts the type to ASCII lowercase here, but - unlike
50
+ // `setData()` - does not replace the `text` and `url` shorthands.
51
+ // https://html.spec.whatwg.org/multipage/dnd.html#dom-datatransferitemlist-add
52
+ const item = typeof args[0] === 'string' ? new DataTransferItemStub(args[0], toAsciiLowercase(args[1])) : new DataTransferItemStub(args[0]);
47
53
  this.push(item);
48
54
  return item;
49
55
  }
@@ -54,6 +60,13 @@ class DataTransferItemListStub extends Array {
54
60
  this.splice(index, 1);
55
61
  }
56
62
  }
63
+ // The spec requires the format to be converted to ASCII lowercase
64
+ // and the shorthands `text` and `url` to be replaced with their MIME types.
65
+ // https://html.spec.whatwg.org/multipage/dnd.html#dom-datatransfer-setdata
66
+ function normalizeFormat(format) {
67
+ const type = toAsciiLowercase(format);
68
+ return type === 'text' ? 'text/plain' : type === 'url' ? 'text/uri-list' : type;
69
+ }
57
70
  function getTypeMatcher(type, exact) {
58
71
  const [group, sub] = type.split('/');
59
72
  const isGroup = !sub || sub === '*';
@@ -65,7 +78,8 @@ function createDataTransferStub(window) {
65
78
  return new class DataTransferStub {
66
79
  getData(format) {
67
80
  var _this_items_find;
68
- const match = (_this_items_find = this.items.find(getTypeMatcher(format, true))) !== null && _this_items_find !== void 0 ? _this_items_find : this.items.find(getTypeMatcher(format, false));
81
+ const type = normalizeFormat(format);
82
+ const match = (_this_items_find = this.items.find(getTypeMatcher(type, true))) !== null && _this_items_find !== void 0 ? _this_items_find : this.items.find(getTypeMatcher(type, false));
69
83
  let text = '';
70
84
  match === null || match === void 0 ? void 0 : match.getAsString((t)=>{
71
85
  text = t;
@@ -73,8 +87,9 @@ function createDataTransferStub(window) {
73
87
  return text;
74
88
  }
75
89
  setData(format, data) {
76
- const matchIndex = this.items.findIndex(getTypeMatcher(format, true));
77
- const item = new DataTransferItemStub(data, format);
90
+ const type = normalizeFormat(format);
91
+ const matchIndex = this.items.findIndex(getTypeMatcher(type, true));
92
+ const item = new DataTransferItemStub(data, type);
78
93
  if (matchIndex >= 0) {
79
94
  this.items.splice(matchIndex, 1, item);
80
95
  } else {
@@ -83,7 +98,8 @@ function createDataTransferStub(window) {
83
98
  }
84
99
  clearData(format) {
85
100
  if (format) {
86
- const matchIndex = this.items.findIndex(getTypeMatcher(format, true));
101
+ const type = normalizeFormat(format);
102
+ const matchIndex = this.items.findIndex(getTypeMatcher(type, true));
87
103
  if (matchIndex >= 0) {
88
104
  this.items.remove(matchIndex);
89
105
  }
@@ -1,4 +1,5 @@
1
1
  import { isDisabled } from '../misc/isDisabled.js';
2
+ import { isElementType } from '../misc/isElementType.js';
2
3
 
3
4
  function getActiveElement(document) {
4
5
  const activeElement = document.activeElement;
@@ -7,6 +8,11 @@ function getActiveElement(document) {
7
8
  if (activeElementInShadowTree) {
8
9
  return activeElementInShadowTree;
9
10
  }
11
+ } else if (activeElement && isElementType(activeElement, 'iframe')) {
12
+ const contentDocument = activeElement.contentDocument;
13
+ if (contentDocument) {
14
+ return getActiveElement(contentDocument);
15
+ }
10
16
  }
11
17
  // Browser does not yield disabled elements as document.activeElement - jsdom does
12
18
  if (isDisabled(activeElement)) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@depup/testing-library__user-event",
3
- "version": "14.6.6-depup.0",
3
+ "version": "14.6.7-depup.0",
4
4
  "description": "Fire events the same way the user does (with updated dependencies)",
5
5
  "keywords": [
6
6
  "@testing-library/user-event",
@@ -124,8 +124,8 @@
124
124
  "changes": {},
125
125
  "depsUpdated": 0,
126
126
  "originalPackage": "@testing-library/user-event",
127
- "originalVersion": "14.6.6",
128
- "processedAt": "2026-08-22T08:07:48.858Z",
127
+ "originalVersion": "14.6.7",
128
+ "processedAt": "2026-09-02T08:12:53.880Z",
129
129
  "smokeTest": "failed"
130
130
  }
131
131
  }