@jupyterlab/testing 4.1.1 → 4.1.2

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.
@@ -6,3 +6,31 @@ declare class ResizeObserverMock {
6
6
  unobserve(_target: any): void;
7
7
  disconnect(): void;
8
8
  }
9
+ declare class DataTransferItemMock implements DataTransferItem {
10
+ protected format: string;
11
+ protected value: string;
12
+ constructor(format: string, value: string);
13
+ get kind(): string;
14
+ get type(): string;
15
+ getAsString(callback: (v: string) => undefined): undefined;
16
+ getAsFile(): any;
17
+ webkitGetAsEntry(): any;
18
+ }
19
+ declare class DataTransferMock implements DataTransfer {
20
+ dropEffect: DataTransfer['dropEffect'];
21
+ effectAllowed: DataTransfer['dropEffect'];
22
+ files: DataTransfer['files'];
23
+ get items(): DataTransfer['items'];
24
+ readonly types: DataTransfer['types'];
25
+ getData(format: string): string;
26
+ setData(format: string, data: string): void;
27
+ clearData(): void;
28
+ setDragImage(imgElement: Element, xOffset: number, yOffset: number): void;
29
+ private _data;
30
+ }
31
+ declare class ClipboardEventMock extends Event implements ClipboardEvent {
32
+ constructor(type: 'copy' | 'cut' | 'paste', options: {
33
+ clipboardData: DataTransfer;
34
+ });
35
+ clipboardData: DataTransfer;
36
+ }
package/lib/jest-shim.js CHANGED
@@ -67,6 +67,64 @@ class ResizeObserverMock {
67
67
  }
68
68
  }
69
69
  window.ResizeObserver = ResizeObserverMock;
70
+ // https://github.com/jsdom/jsdom/issues/2913
71
+ class DataTransferItemMock {
72
+ constructor(format, value) {
73
+ this.format = format;
74
+ this.value = value;
75
+ // no-op
76
+ }
77
+ get kind() {
78
+ return 'string';
79
+ }
80
+ get type() {
81
+ return this.format;
82
+ }
83
+ getAsString(callback) {
84
+ callback(this.value);
85
+ }
86
+ getAsFile() {
87
+ return null;
88
+ }
89
+ webkitGetAsEntry() {
90
+ return null;
91
+ }
92
+ }
93
+ // https://github.com/jsdom/jsdom/issues/2913
94
+ class DataTransferMock {
95
+ constructor() {
96
+ this.dropEffect = 'none';
97
+ this.effectAllowed = 'none';
98
+ this.types = [];
99
+ this._data = {};
100
+ }
101
+ get items() {
102
+ return [
103
+ ...Object.entries(this._data).map(([k, v]) => new DataTransferItemMock(k, v))
104
+ ];
105
+ }
106
+ getData(format) {
107
+ return this._data[format];
108
+ }
109
+ setData(format, data) {
110
+ this._data[format] = data;
111
+ }
112
+ clearData() {
113
+ this._data = {};
114
+ }
115
+ setDragImage(imgElement, xOffset, yOffset) {
116
+ // no-op
117
+ }
118
+ }
119
+ window.DataTransfer = DataTransferMock;
120
+ // https://github.com/jsdom/jsdom/issues/1568
121
+ class ClipboardEventMock extends Event {
122
+ constructor(type, options) {
123
+ super(type);
124
+ this.clipboardData = options.clipboardData;
125
+ }
126
+ }
127
+ window.ClipboardEvent = ClipboardEventMock;
70
128
  window.document.elementFromPoint = (left, top) => document.body;
71
129
  if (!window.hasOwnProperty('getSelection')) {
72
130
  // Minimal getSelection() that supports a fake selection
@@ -1 +1 @@
1
- {"version":3,"file":"jest-shim.js","sourceRoot":"","sources":["../src/jest-shim.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"jest-shim.js","sourceRoot":"","sources":["../src/jest-shim.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jupyterlab/testing",
3
- "version": "4.1.1",
3
+ "version": "4.1.2",
4
4
  "description": "JupyterLab basic testing utilities.",
5
5
  "homepage": "https://github.com/jupyterlab/jupyterlab",
6
6
  "bugs": {
@@ -35,7 +35,7 @@
35
35
  "dependencies": {
36
36
  "@babel/core": "^7.10.2",
37
37
  "@babel/preset-env": "^7.10.2",
38
- "@jupyterlab/coreutils": "^6.1.1",
38
+ "@jupyterlab/coreutils": "^6.1.2",
39
39
  "@lumino/coreutils": "^2.1.2",
40
40
  "@lumino/signaling": "^2.1.2",
41
41
  "child_process": "~1.0.2",
package/src/jest-shim.ts CHANGED
@@ -85,6 +85,75 @@ class ResizeObserverMock {
85
85
 
86
86
  window.ResizeObserver = ResizeObserverMock;
87
87
 
88
+ // https://github.com/jsdom/jsdom/issues/2913
89
+ class DataTransferItemMock implements DataTransferItem {
90
+ constructor(
91
+ protected format: string,
92
+ protected value: string
93
+ ) {
94
+ // no-op
95
+ }
96
+ get kind() {
97
+ return 'string';
98
+ }
99
+ get type() {
100
+ return this.format;
101
+ }
102
+ getAsString(callback: (v: string) => undefined): undefined {
103
+ callback(this.value);
104
+ }
105
+ getAsFile() {
106
+ return null as any;
107
+ }
108
+ webkitGetAsEntry() {
109
+ return null as any;
110
+ }
111
+ }
112
+
113
+ // https://github.com/jsdom/jsdom/issues/2913
114
+ class DataTransferMock implements DataTransfer {
115
+ dropEffect: DataTransfer['dropEffect'] = 'none';
116
+ effectAllowed: DataTransfer['dropEffect'] = 'none';
117
+ files: DataTransfer['files'];
118
+ get items(): DataTransfer['items'] {
119
+ return [
120
+ ...Object.entries(this._data).map(
121
+ ([k, v]) => new DataTransferItemMock(k, v)
122
+ )
123
+ ] as unknown as DataTransferItemList;
124
+ }
125
+ readonly types: DataTransfer['types'] = [];
126
+ getData(format: string) {
127
+ return this._data[format];
128
+ }
129
+ setData(format: string, data: string) {
130
+ this._data[format] = data;
131
+ }
132
+ clearData() {
133
+ this._data = {};
134
+ }
135
+ setDragImage(imgElement: Element, xOffset: number, yOffset: number) {
136
+ // no-op
137
+ }
138
+ private _data: Record<string, string> = {};
139
+ }
140
+
141
+ window.DataTransfer = DataTransferMock;
142
+
143
+ // https://github.com/jsdom/jsdom/issues/1568
144
+ class ClipboardEventMock extends Event implements ClipboardEvent {
145
+ constructor(
146
+ type: 'copy' | 'cut' | 'paste',
147
+ options: { clipboardData: DataTransfer }
148
+ ) {
149
+ super(type);
150
+ this.clipboardData = options.clipboardData;
151
+ }
152
+ clipboardData: DataTransfer;
153
+ }
154
+
155
+ window.ClipboardEvent = ClipboardEventMock;
156
+
88
157
  (window as any).document.elementFromPoint = (left: number, top: number) =>
89
158
  document.body;
90
159