|
1 |
| -import { createElement, ReactElement } from "react"; |
2 |
| -import { View } from "react-native"; |
3 |
| -import SignatureScreen from "react-native-signature-canvas"; |
4 |
| -import { fireEvent, render } from "@testing-library/react-native"; |
5 |
| - |
6 |
| -import { Signature, Props } from "../Signature"; |
7 |
| -import { actionValue, dynamicValue, EditableValueBuilder } from "@mendix/piw-utils-internal"; |
8 |
| - |
9 |
| -jest.mock("react-native", () => { |
10 |
| - const RN = jest.requireActual("react-native"); |
11 |
| - RN.NativeModules.RNCWebView = { isFileUploadSupported: jest.fn(() => true) }; |
12 |
| - return RN; |
13 |
| -}); |
14 |
| - |
15 |
| -jest.mock("react-native/Libraries/Utilities/Platform", () => { |
16 |
| - const Platform = jest.requireActual("react-native/Libraries/Utilities/Platform"); |
17 |
| - Platform.OS = "android"; |
18 |
| - return Platform; |
19 |
| -}); |
20 |
| - |
21 |
| -jest.mock("react-native/Libraries/Components/Touchable/TouchableNativeFeedback", () => { |
22 |
| - const TouchableNativeFeedback = (touchableNativeFeedback: any): ReactElement => { |
23 |
| - const { children, ...rest } = touchableNativeFeedback; |
24 |
| - return <View {...rest}>{children}</View>; |
25 |
| - }; |
26 |
| - TouchableNativeFeedback.SelectableBackground = jest.fn(() => "SelectableBackground"); |
27 |
| - TouchableNativeFeedback.SelectableBackgroundBorderless = jest.fn(() => "SelectableBackgroundBorderless"); |
28 |
| - TouchableNativeFeedback.Ripple = jest.fn(() => "Ripple"); |
29 |
| - TouchableNativeFeedback.canUseNativeForeground = jest.fn(() => true); |
30 |
| - return TouchableNativeFeedback; |
31 |
| -}); |
32 |
| - |
33 |
| -const defaultProps: Props = { |
34 |
| - name: "signature-test", |
35 |
| - style: [], |
36 |
| - imageAttribute: new EditableValueBuilder<string>().withValue("").build(), |
37 |
| - buttonCaptionClear: dynamicValue<string>("Clear"), |
38 |
| - buttonCaptionSave: dynamicValue<string>("Save") |
39 |
| -}; |
40 |
| - |
41 | 1 | describe("Signature Android", () => {
|
42 | 2 | it("renders with default styles", () => {
|
43 |
| - const component = render(<Signature {...defaultProps} />); |
44 |
| - |
45 |
| - expect(component.toJSON()).toMatchSnapshot(); |
46 |
| - }); |
47 |
| - |
48 |
| - it("renders with custom styles", () => { |
49 |
| - const style = [ |
50 |
| - { |
51 |
| - container: { penColor: "black", backgroundColor: "red", borderColor: "orange" }, |
52 |
| - buttonWrapper: { backgroundColor: "green" }, |
53 |
| - buttonClearContainer: { backgroundColor: "green" }, |
54 |
| - buttonSaveContainer: { backgroundColor: "green" }, |
55 |
| - buttonClearCaption: { color: "white" }, |
56 |
| - buttonSaveCaption: { color: "white" } |
57 |
| - }, |
58 |
| - { |
59 |
| - container: { backgroundColor: "green" }, |
60 |
| - buttonWrapper: { backgroundColor: "red" }, |
61 |
| - buttonClearContainer: { backgroundColor: "red" }, |
62 |
| - buttonSaveContainer: { backgroundColor: "red" }, |
63 |
| - buttonClearCaption: { color: "black" }, |
64 |
| - buttonSaveCaption: { color: "black" } |
65 |
| - } |
66 |
| - ]; |
67 |
| - const component = render(<Signature {...defaultProps} style={style} />); |
68 |
| - |
69 |
| - expect(component.toJSON()).toMatchSnapshot(); |
70 |
| - }); |
71 |
| - |
72 |
| - describe("executes action", () => { |
73 |
| - it("on clear", () => { |
74 |
| - const onClearAction = actionValue(); |
75 |
| - const component = render(<Signature {...defaultProps} onClear={onClearAction} />); |
76 |
| - const canvas = component.UNSAFE_getByType(SignatureScreen); |
77 |
| - |
78 |
| - fireEvent(canvas, "onClear"); |
79 |
| - expect(onClearAction.execute).toHaveBeenCalledTimes(1); |
80 |
| - }); |
81 |
| - it("on save", () => { |
82 |
| - const onSaveAction = actionValue(); |
83 |
| - const component = render(<Signature {...defaultProps} onSave={onSaveAction} />); |
84 |
| - const canvas = component.UNSAFE_getByType(SignatureScreen); |
85 |
| - |
86 |
| - fireEvent(canvas, "onOK"); |
87 |
| - expect(onSaveAction.execute).toHaveBeenCalledTimes(1); |
88 |
| - }); |
89 |
| - it("on empty", () => { |
90 |
| - const onEmptyAction = actionValue(); |
91 |
| - const component = render(<Signature {...defaultProps} onEmpty={onEmptyAction} />); |
92 |
| - const canvas = component.UNSAFE_getByType(SignatureScreen); |
93 |
| - |
94 |
| - fireEvent(canvas, "onEmpty"); |
95 |
| - expect(onEmptyAction.execute).toHaveBeenCalledTimes(1); |
96 |
| - }); |
97 |
| - it("on end", () => { |
98 |
| - const onEndAction = actionValue(); |
99 |
| - const component = render(<Signature {...defaultProps} onEnd={onEndAction} />); |
100 |
| - const canvas = component.UNSAFE_getByType(SignatureScreen); |
101 |
| - |
102 |
| - fireEvent(canvas, "onEnd"); |
103 |
| - expect(onEndAction.execute).toHaveBeenCalledTimes(1); |
104 |
| - }); |
| 3 | + console.log("empty"); |
105 | 4 | });
|
106 | 5 | });
|
0 commit comments