Skip to content

Commit 9fd6735

Browse files
author
Brian Vaughn
committed
You're killing me, Jest
1 parent 373e54e commit 9fd6735

File tree

1 file changed

+127
-113
lines changed

1 file changed

+127
-113
lines changed

packages/react-devtools-shared/src/__tests__/legacy/inspectElement-test.js

Lines changed: 127 additions & 113 deletions
Original file line numberDiff line numberDiff line change
@@ -212,119 +212,133 @@ describe('InspectedElementContext', () => {
212212
const id = ((store.getElementIDAtIndex(0): any): number);
213213
const inspectedElement = await read(id);
214214

215-
expect(inspectedElement.props).toMatchInlineSnapshot(`
216-
Object {
217-
"anonymous_fn": Dehydrated {
218-
"preview_short": ƒ () {},
219-
"preview_long": ƒ () {},
220-
},
221-
"array_buffer": Dehydrated {
222-
"preview_short": ArrayBuffer(3),
223-
"preview_long": ArrayBuffer(3),
224-
},
225-
"array_of_arrays": Array [
226-
Dehydrated {
227-
"preview_short": Array(2),
228-
"preview_long": [Array(3), Array(0)],
229-
},
230-
],
231-
"big_int": Dehydrated {
232-
"preview_short": 123n,
233-
"preview_long": 123n,
234-
},
235-
"bound_fn": Dehydrated {
236-
"preview_short": ƒ bound exampleFunction() {},
237-
"preview_long": ƒ bound exampleFunction() {},
238-
},
239-
"data_view": Dehydrated {
240-
"preview_short": DataView(3),
241-
"preview_long": DataView(3),
242-
},
243-
"date": Dehydrated {
244-
"preview_short": Wed Dec 31 1969 19:00:00 GMT-0500 (Eastern Standard Time),
245-
"preview_long": Wed Dec 31 1969 19:00:00 GMT-0500 (Eastern Standard Time),
246-
},
247-
"fn": Dehydrated {
248-
"preview_short": ƒ exampleFunction() {},
249-
"preview_long": ƒ exampleFunction() {},
250-
},
251-
"html_element": Dehydrated {
252-
"preview_short": <div />,
253-
"preview_long": <div />,
254-
},
255-
"immutable": Object {
256-
"0": Dehydrated {
257-
"preview_short": Array(2),
258-
"preview_long": ["a", List(3)],
259-
},
260-
"1": Dehydrated {
261-
"preview_short": Array(2),
262-
"preview_long": ["b", 123],
263-
},
264-
"2": Dehydrated {
265-
"preview_short": Array(2),
266-
"preview_long": ["c", Map(2)],
267-
},
268-
},
269-
"map": Object {
270-
"0": Dehydrated {
271-
"preview_short": Array(2),
272-
"preview_long": ["name", "Brian"],
273-
},
274-
"1": Dehydrated {
275-
"preview_short": Array(2),
276-
"preview_long": ["food", "sushi"],
277-
},
278-
},
279-
"map_of_maps": Object {
280-
"0": Dehydrated {
281-
"preview_short": Array(2),
282-
"preview_long": ["first", Map(2)],
283-
},
284-
"1": Dehydrated {
285-
"preview_short": Array(2),
286-
"preview_long": ["second", Map(2)],
287-
},
288-
},
289-
"object_of_objects": Object {
290-
"inner": Dehydrated {
291-
"preview_short": {…},
292-
"preview_long": {boolean: true, number: 123, string: "abc"},
293-
},
294-
},
295-
"react_element": Dehydrated {
296-
"preview_short": <span />,
297-
"preview_long": <span />,
298-
},
299-
"regexp": Dehydrated {
300-
"preview_short": /abc/giu,
301-
"preview_long": /abc/giu,
302-
},
303-
"set": Object {
304-
"0": "abc",
305-
"1": 123,
306-
},
307-
"set_of_sets": Object {
308-
"0": Dehydrated {
309-
"preview_short": Set(3),
310-
"preview_long": Set(3) {"a", "b", "c"},
311-
},
312-
"1": Dehydrated {
313-
"preview_short": Set(3),
314-
"preview_long": Set(3) {1, 2, 3},
315-
},
316-
},
317-
"symbol": Dehydrated {
318-
"preview_short": Symbol(symbol),
319-
"preview_long": Symbol(symbol),
320-
},
321-
"typed_array": Object {
322-
"0": 100,
323-
"1": -100,
324-
"2": 0,
325-
},
326-
}
327-
`);
215+
const {
216+
anonymous_fn,
217+
array_buffer,
218+
array_of_arrays,
219+
big_int,
220+
bound_fn,
221+
data_view,
222+
date,
223+
fn,
224+
html_element,
225+
immutable,
226+
map,
227+
map_of_maps,
228+
object_of_objects,
229+
react_element,
230+
regexp,
231+
set,
232+
set_of_sets,
233+
symbol,
234+
typed_array,
235+
} = inspectedElement.props;
236+
237+
const {meta} = require('react-devtools-shared/src/hydration');
238+
239+
expect(anonymous_fn[meta.inspectable]).toBe(false);
240+
expect(anonymous_fn[meta.name]).toBe('function');
241+
expect(anonymous_fn[meta.type]).toBe('function');
242+
expect(anonymous_fn[meta.preview_long]).toBe('ƒ () {}');
243+
expect(anonymous_fn[meta.preview_short]).toBe('ƒ () {}');
244+
245+
expect(array_buffer[meta.size]).toBe(3);
246+
expect(array_buffer[meta.inspectable]).toBe(false);
247+
expect(array_buffer[meta.name]).toBe('ArrayBuffer');
248+
expect(array_buffer[meta.type]).toBe('array_buffer');
249+
expect(array_buffer[meta.preview_short]).toBe('ArrayBuffer(3)');
250+
expect(array_buffer[meta.preview_long]).toBe('ArrayBuffer(3)');
251+
252+
expect(array_of_arrays[0][meta.size]).toBe(2);
253+
expect(array_of_arrays[0][meta.inspectable]).toBe(true);
254+
expect(array_of_arrays[0][meta.name]).toBe('Array');
255+
expect(array_of_arrays[0][meta.type]).toBe('array');
256+
expect(array_of_arrays[0][meta.preview_long]).toBe('[Array(3), Array(0)]');
257+
expect(array_of_arrays[0][meta.preview_short]).toBe('Array(2)');
258+
259+
expect(big_int[meta.inspectable]).toBe(false);
260+
expect(big_int[meta.name]).toBe('123');
261+
expect(big_int[meta.type]).toBe('bigint');
262+
263+
expect(bound_fn[meta.inspectable]).toBe(false);
264+
expect(bound_fn[meta.name]).toBe('bound exampleFunction');
265+
expect(bound_fn[meta.type]).toBe('function');
266+
expect(bound_fn[meta.preview_long]).toBe('ƒ bound exampleFunction() {}');
267+
expect(bound_fn[meta.preview_short]).toBe('ƒ bound exampleFunction() {}');
268+
269+
expect(data_view[meta.size]).toBe(3);
270+
expect(data_view[meta.inspectable]).toBe(false);
271+
expect(data_view[meta.name]).toBe('DataView');
272+
expect(data_view[meta.type]).toBe('data_view');
273+
274+
expect(date[meta.inspectable]).toBe(false);
275+
expect(date[meta.type]).toBe('date');
276+
277+
expect(fn[meta.inspectable]).toBe(false);
278+
expect(fn[meta.name]).toBe('exampleFunction');
279+
expect(fn[meta.type]).toBe('function');
280+
expect(fn[meta.preview_long]).toBe('ƒ exampleFunction() {}');
281+
expect(fn[meta.preview_short]).toBe('ƒ exampleFunction() {}');
282+
283+
expect(html_element[meta.inspectable]).toBe(false);
284+
expect(html_element[meta.name]).toBe('DIV');
285+
expect(html_element[meta.type]).toBe('html_element');
286+
287+
expect(immutable[meta.inspectable]).toBeUndefined(); // Complex type
288+
expect(immutable[meta.name]).toBe('Map');
289+
expect(immutable[meta.type]).toBe('iterator');
290+
291+
expect(map[meta.inspectable]).toBeUndefined(); // Complex type
292+
expect(map[meta.name]).toBe('Map');
293+
expect(map[meta.type]).toBe('iterator');
294+
expect(map[0][meta.type]).toBe('array');
295+
296+
expect(map_of_maps[meta.inspectable]).toBeUndefined(); // Complex type
297+
expect(map_of_maps[meta.name]).toBe('Map');
298+
expect(map_of_maps[meta.type]).toBe('iterator');
299+
expect(map_of_maps[0][meta.type]).toBe('array');
300+
301+
expect(object_of_objects.inner[meta.size]).toBe(3);
302+
expect(object_of_objects.inner[meta.inspectable]).toBe(true);
303+
expect(object_of_objects.inner[meta.name]).toBe('');
304+
expect(object_of_objects.inner[meta.type]).toBe('object');
305+
expect(object_of_objects.inner[meta.preview_long]).toBe(
306+
'{boolean: true, number: 123, string: "abc"}',
307+
);
308+
expect(object_of_objects.inner[meta.preview_short]).toBe('{…}');
309+
310+
expect(react_element[meta.inspectable]).toBe(false);
311+
expect(react_element[meta.name]).toBe('span');
312+
expect(react_element[meta.type]).toBe('react_element');
313+
314+
expect(regexp[meta.inspectable]).toBe(false);
315+
expect(regexp[meta.name]).toBe('/abc/giu');
316+
expect(regexp[meta.preview_long]).toBe('/abc/giu');
317+
expect(regexp[meta.preview_short]).toBe('/abc/giu');
318+
expect(regexp[meta.type]).toBe('regexp');
319+
320+
expect(set[meta.inspectable]).toBeUndefined(); // Complex type
321+
expect(set[meta.name]).toBe('Set');
322+
expect(set[meta.type]).toBe('iterator');
323+
expect(set[0]).toBe('abc');
324+
expect(set[1]).toBe(123);
325+
326+
expect(set_of_sets[meta.inspectable]).toBeUndefined(); // Complex type
327+
expect(set_of_sets[meta.name]).toBe('Set');
328+
expect(set_of_sets[meta.type]).toBe('iterator');
329+
expect(set_of_sets['0'][meta.inspectable]).toBe(true);
330+
331+
expect(symbol[meta.inspectable]).toBe(false);
332+
expect(symbol[meta.name]).toBe('Symbol(symbol)');
333+
expect(symbol[meta.type]).toBe('symbol');
334+
335+
expect(typed_array[meta.inspectable]).toBeUndefined(); // Complex type
336+
expect(typed_array[meta.size]).toBe(3);
337+
expect(typed_array[meta.name]).toBe('Int8Array');
338+
expect(typed_array[meta.type]).toBe('typed_array');
339+
expect(typed_array[0]).toBe(100);
340+
expect(typed_array[1]).toBe(-100);
341+
expect(typed_array[2]).toBe(0);
328342

329343
done();
330344
});

0 commit comments

Comments
 (0)