/
ReactElement.test.ts
52 lines (41 loc) · 1.44 KB
/
ReactElement.test.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
/**
* Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
import React from 'react';
import {plugins} from '../';
import setPrettyPrint from './setPrettyPrint';
const {ReactElement} = plugins;
setPrettyPrint([ReactElement]);
describe('ReactElement Plugin', () => {
let forwardRefComponent: {
(_props: unknown, _ref: unknown): React.ReactElement | null;
displayName?: string;
};
let forwardRefExample: ReturnType<typeof React.forwardRef>;
beforeEach(() => {
forwardRefComponent = (_props, _ref) => null;
forwardRefExample = React.forwardRef(forwardRefComponent);
forwardRefExample.displayName = undefined;
});
test('serializes forwardRef without displayName', () => {
forwardRefExample = React.forwardRef((_props, _ref) => null);
expect(React.createElement(forwardRefExample)).toPrettyPrintTo(
'<ForwardRef />',
);
});
test('serializes forwardRef with displayName', () => {
forwardRefExample.displayName = 'Display';
expect(React.createElement(forwardRefExample)).toPrettyPrintTo(
'<Display />',
);
});
test('serializes forwardRef component with displayName', () => {
forwardRefComponent.displayName = 'Display';
expect(React.createElement(forwardRefExample)).toPrettyPrintTo(
'<ForwardRef(Display) />',
);
});
});