@tarojs/taro-rn 4.0.1 → 4.0.3-alpha.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.
Files changed (199) hide show
  1. package/LICENSE +8 -8
  2. package/apiList.js +31 -31
  3. package/dist/api/index.js +1 -1
  4. package/dist/api/index.js.map +1 -1
  5. package/dist/lib/Mask.js +2 -2
  6. package/dist/lib/Mask.js.map +1 -1
  7. package/dist/lib/Popup.js +20 -13
  8. package/dist/lib/Popup.js.map +1 -1
  9. package/dist/lib/StyleSheet.js +1 -1
  10. package/dist/lib/StyleSheet.js.map +1 -1
  11. package/dist/lib/accelerometer.js +1 -1
  12. package/dist/lib/accelerometer.js.map +1 -1
  13. package/dist/lib/chooseImage/index.js +3 -151
  14. package/dist/lib/chooseImage/index.js.map +1 -1
  15. package/dist/lib/chooseMedia/index.js +19 -0
  16. package/dist/lib/chooseMedia/index.js.map +1 -0
  17. package/dist/lib/chooseVideo/index.js +1 -55
  18. package/dist/lib/chooseVideo/index.js.map +1 -1
  19. package/dist/lib/clearStorage/index.js +2 -2
  20. package/dist/lib/clearStorage/index.js.map +1 -1
  21. package/dist/lib/compressImage/index.js +1 -1
  22. package/dist/lib/compressImage/index.js.map +1 -1
  23. package/dist/lib/connectSocket/index.js.map +1 -1
  24. package/dist/lib/connectSocket/socketTask.js +1 -1
  25. package/dist/lib/connectSocket/socketTask.js.map +1 -1
  26. package/dist/lib/createCameraContext/index.js +3 -3
  27. package/dist/lib/createCameraContext/index.js.map +1 -1
  28. package/dist/lib/createInnerAudioContext/index.js +2 -2
  29. package/dist/lib/createInnerAudioContext/index.js.map +1 -1
  30. package/dist/lib/createVideoContext/index.js +7 -7
  31. package/dist/lib/createVideoContext/index.js.map +1 -1
  32. package/dist/lib/deviceMotion.js +2 -2
  33. package/dist/lib/deviceMotion.js.map +1 -1
  34. package/dist/lib/file.js +4 -4
  35. package/dist/lib/file.js.map +1 -1
  36. package/dist/lib/getAppBaseInfo/index.js +2 -2
  37. package/dist/lib/getAppBaseInfo/index.js.map +1 -1
  38. package/dist/lib/getClipboardData/index.js.map +1 -1
  39. package/dist/lib/getImageInfo/index.js +2 -2
  40. package/dist/lib/getImageInfo/index.js.map +1 -1
  41. package/dist/lib/getLocation/index.js +8 -4
  42. package/dist/lib/getLocation/index.js.map +1 -1
  43. package/dist/lib/getRecorderManager/index.js +11 -6
  44. package/dist/lib/getRecorderManager/index.js.map +1 -1
  45. package/dist/lib/getStorage/index.js.map +1 -1
  46. package/dist/lib/getStorageInfo/index.js +2 -2
  47. package/dist/lib/getStorageInfo/index.js.map +1 -1
  48. package/dist/lib/getSystemInfo/index.js +1 -1
  49. package/dist/lib/getSystemInfo/index.js.map +1 -1
  50. package/dist/lib/getSystemInfoSync/index.js +2 -2
  51. package/dist/lib/getSystemInfoSync/index.js.map +1 -1
  52. package/dist/lib/gyroscope.js +1 -1
  53. package/dist/lib/gyroscope.js.map +1 -1
  54. package/dist/lib/index.js +1 -0
  55. package/dist/lib/index.js.map +1 -1
  56. package/dist/lib/keyboard.js +3 -3
  57. package/dist/lib/keyboard.js.map +1 -1
  58. package/dist/lib/location.js.map +1 -1
  59. package/dist/lib/makePhoneCall/index.js +1 -1
  60. package/dist/lib/makePhoneCall/index.js.map +1 -1
  61. package/dist/lib/media.js +61 -30
  62. package/dist/lib/media.js.map +1 -1
  63. package/dist/lib/network.js +1 -1
  64. package/dist/lib/network.js.map +1 -1
  65. package/dist/lib/offWindowResize/index.js.map +1 -1
  66. package/dist/lib/onWindowResize/index.js +1 -1
  67. package/dist/lib/onWindowResize/index.js.map +1 -1
  68. package/dist/lib/openUrl/index.js +1 -1
  69. package/dist/lib/openUrl/index.js.map +1 -1
  70. package/dist/lib/permission.js +6 -5
  71. package/dist/lib/permission.js.map +1 -1
  72. package/dist/lib/previewImage/index.js +3 -3
  73. package/dist/lib/previewImage/index.js.map +1 -1
  74. package/dist/lib/request/index.js +1 -1
  75. package/dist/lib/request/index.js.map +1 -1
  76. package/dist/lib/scanCode/index.js +23 -23
  77. package/dist/lib/scanCode/index.js.map +1 -1
  78. package/dist/lib/screen.js +2 -2
  79. package/dist/lib/screen.js.map +1 -1
  80. package/dist/lib/setClipboardData/index.js +2 -2
  81. package/dist/lib/setClipboardData/index.js.map +1 -1
  82. package/dist/lib/setKeepScreenOn/index.js +1 -1
  83. package/dist/lib/setKeepScreenOn/index.js.map +1 -1
  84. package/dist/lib/setStorage/index.js.map +1 -1
  85. package/dist/lib/showActionSheet/ActionSheet.js +11 -23
  86. package/dist/lib/showActionSheet/ActionSheet.js.map +1 -1
  87. package/dist/lib/showActionSheet/index.js +10 -24
  88. package/dist/lib/showActionSheet/index.js.map +1 -1
  89. package/dist/lib/showModal/Dialog.js +22 -36
  90. package/dist/lib/showModal/Dialog.js.map +1 -1
  91. package/dist/lib/showModal/index.js.map +1 -1
  92. package/dist/lib/showModal/toast.js +6 -6
  93. package/dist/lib/showModal/toast.js.map +1 -1
  94. package/dist/lib/unsupportedApi.js +2 -4
  95. package/dist/lib/unsupportedApi.js.map +1 -1
  96. package/dist/lib/variable.js +1 -1
  97. package/dist/lib/variable.js.map +1 -1
  98. package/dist/lib/vibrate.js +1 -1
  99. package/dist/lib/vibrate.js.map +1 -1
  100. package/dist/lib/window.js.map +1 -1
  101. package/dist/utils/callbackManager.js.map +1 -1
  102. package/dist/utils/index.js.map +1 -1
  103. package/libList.js +1 -0
  104. package/package.json +70 -69
  105. package/src/api/index.ts +31 -31
  106. package/src/lib/ENV_TYPE/index.ts +1 -1
  107. package/src/lib/Mask.tsx +2 -2
  108. package/src/lib/Popup.tsx +26 -19
  109. package/src/lib/StyleSheet.ts +1 -1
  110. package/src/lib/accelerometer.ts +2 -1
  111. package/src/lib/arrayBufferToBase64/index.ts +1 -1
  112. package/src/lib/base64ToArrayBuffer/index.ts +1 -1
  113. package/src/lib/chooseImage/index.ts +3 -155
  114. package/src/lib/chooseMedia/index.ts +15 -0
  115. package/src/lib/chooseVideo/index.ts +1 -56
  116. package/src/lib/clearStorage/index.ts +1 -0
  117. package/src/lib/clearStorageSync/index.ts +1 -1
  118. package/src/lib/compressImage/index.ts +1 -0
  119. package/src/lib/connectSocket/socketTask.ts +7 -9
  120. package/src/lib/createCameraContext/index.ts +6 -4
  121. package/src/lib/createInnerAudioContext/index.ts +1 -0
  122. package/src/lib/createSelectorQuery/index.ts +1 -1
  123. package/src/lib/deviceMotion.ts +4 -3
  124. package/src/lib/file.ts +9 -8
  125. package/src/lib/getClipboardData/index.ts +1 -0
  126. package/src/lib/getEnv/index.ts +1 -1
  127. package/src/lib/getFileSystemManager/index.ts +1 -1
  128. package/src/lib/getLocation/index.ts +7 -2
  129. package/src/lib/getRecorderManager/index.ts +7 -2
  130. package/src/lib/getStorage/index.ts +1 -0
  131. package/src/lib/getStorageInfo/index.ts +1 -0
  132. package/src/lib/getStorageInfoSync/index.ts +1 -1
  133. package/src/lib/getStorageSync/index.ts +1 -1
  134. package/src/lib/getSystemInfo/index.ts +2 -2
  135. package/src/lib/getSystemInfoSync/index.ts +3 -3
  136. package/src/lib/gyroscope.ts +47 -46
  137. package/src/lib/index.ts +1 -0
  138. package/src/lib/keyboard.ts +5 -4
  139. package/src/lib/location.ts +6 -5
  140. package/src/lib/makePhoneCall/index.ts +2 -1
  141. package/src/lib/media.ts +83 -31
  142. package/src/lib/network.ts +5 -5
  143. package/src/lib/offLocationChange/index.ts +1 -1
  144. package/src/lib/offUserCaptureScreen/index.ts +1 -1
  145. package/src/lib/onLocationChange/index.ts +1 -1
  146. package/src/lib/onUserCaptureScreen/index.ts +1 -1
  147. package/src/lib/onWindowResize/index.ts +2 -2
  148. package/src/lib/openUrl/index.d.ts +23 -22
  149. package/src/lib/openUrl/index.ts +2 -1
  150. package/src/lib/permission.ts +33 -25
  151. package/src/lib/previewImage/index.tsx +4 -3
  152. package/src/lib/removeStorageSync/index.ts +1 -1
  153. package/src/lib/request/index.ts +2 -2
  154. package/src/lib/scanCode/index.tsx +18 -16
  155. package/src/lib/screen.ts +1 -0
  156. package/src/lib/setClipboardData/index.ts +3 -2
  157. package/src/lib/setKeepScreenOn/index.ts +2 -1
  158. package/src/lib/setStorage/index.ts +1 -0
  159. package/src/lib/setStorageSync/index.ts +1 -1
  160. package/src/lib/showActionSheet/ActionSheet.tsx +34 -43
  161. package/src/lib/showActionSheet/index.tsx +11 -36
  162. package/src/lib/showModal/Dialog.tsx +34 -39
  163. package/src/lib/showModal/index.tsx +1 -0
  164. package/src/lib/showModal/toast.tsx +14 -13
  165. package/src/lib/startGyroscope/index.ts +1 -1
  166. package/src/lib/startLocationUpdate/index.ts +1 -1
  167. package/src/lib/unsupportedApi.ts +3 -5
  168. package/src/lib/vibrate.ts +11 -10
  169. package/src/lib/window.ts +3 -2
  170. package/src/utils/callbackManager.ts +5 -5
  171. package/src/utils/index.ts +4 -4
  172. package/{src/types → types}/vue/index.d.ts +2 -3
  173. package/dist/setup.js +0 -75
  174. package/dist/setup.js.map +0 -1
  175. package/src/__tests__/__mock__/mockAsyncStorage.js +0 -47
  176. package/src/__tests__/__mock__/mockClipboard.js +0 -15
  177. package/src/__tests__/__mock__/mockNavigator.js +0 -20
  178. package/src/__tests__/__mock__/mockNetwork.js +0 -59
  179. package/src/__tests__/__mock__/mockRNCCameraRoll.js +0 -16
  180. package/src/__tests__/__mock__/mockRNCGeolocation.js +0 -13
  181. package/src/__tests__/__mock__/mockVibrate.js +0 -6
  182. package/src/__tests__/__snapshots__/scanCode.test.tsx.snap +0 -125
  183. package/src/__tests__/clipboard.test.ts +0 -88
  184. package/src/__tests__/deviceMotion.test.ts +0 -37
  185. package/src/__tests__/geolocation.test.ts +0 -60
  186. package/src/__tests__/interactive.test.tsx +0 -101
  187. package/src/__tests__/keyboard.test.ts +0 -46
  188. package/src/__tests__/media.test.ts +0 -104
  189. package/src/__tests__/network.test.ts +0 -57
  190. package/src/__tests__/others.test.ts +0 -25
  191. package/src/__tests__/phone.test.ts +0 -31
  192. package/src/__tests__/request.test.ts +0 -146
  193. package/src/__tests__/scanCode.test.tsx +0 -14
  194. package/src/__tests__/storage.test.ts +0 -202
  195. package/src/__tests__/system.test.ts +0 -69
  196. package/src/__tests__/vibrate.test.ts +0 -27
  197. package/src/__tests__/websocket.test.ts +0 -169
  198. package/src/setup.ts +0 -84
  199. /package/{src/types → types}/definition.d.ts +0 -0
@@ -1,125 +0,0 @@
1
- // Jest Snapshot v1, https://goo.gl/fbAQLP
2
-
3
- exports[`scanCode should render scanCode success 1`] = `
4
- <View
5
- style={
6
- Array [
7
- Object {
8
- "alignItems": "center",
9
- "backgroundColor": "#FFF",
10
- "flex": 1,
11
- "justifyContent": "center",
12
- "position": "absolute",
13
- "zIndex": 1000,
14
- },
15
- ]
16
- }
17
- >
18
- <ViewManagerAdapter_ExponentCamera
19
- onBarCodeScanned={[Function]}
20
- onCameraReady={[Function]}
21
- onFacesDetected={[Function]}
22
- onMountError={[Function]}
23
- onPictureSaved={[Function]}
24
- proxiedProperties={
25
- Object {
26
- "autoFocus": undefined,
27
- "barCodeScannerEnabled": true,
28
- "barCodeScannerSettings": Object {
29
- "barCodeTypes": Array [],
30
- },
31
- "faceDetectorSettings": Object {},
32
- "flashMode": undefined,
33
- "focusDepth": 0,
34
- "type": undefined,
35
- "whiteBalance": undefined,
36
- "zoom": 0,
37
- }
38
- }
39
- style={
40
- Object {
41
- "height": 1334,
42
- "width": 750,
43
- }
44
- }
45
- />
46
- <View
47
- accessibilityLabel="Close"
48
- accessible={true}
49
- collapsable={false}
50
- focusable={true}
51
- onClick={[Function]}
52
- onResponderGrant={[Function]}
53
- onResponderMove={[Function]}
54
- onResponderRelease={[Function]}
55
- onResponderTerminate={[Function]}
56
- onResponderTerminationRequest={[Function]}
57
- onStartShouldSetResponder={[Function]}
58
- style={
59
- Object {
60
- "left": 20,
61
- "opacity": 1,
62
- "position": "absolute",
63
- "top": 10,
64
- }
65
- }
66
- >
67
- <View
68
- style={
69
- Object {
70
- "paddingTop": 20,
71
- }
72
- }
73
- >
74
- <Image
75
- source={1}
76
- style={
77
- Object {
78
- "height": 25,
79
- "marginTop": null,
80
- "width": 25,
81
- }
82
- }
83
- />
84
- </View>
85
- </View>
86
- <View
87
- accessible={true}
88
- collapsable={false}
89
- focusable={true}
90
- onClick={[Function]}
91
- onResponderGrant={[Function]}
92
- onResponderMove={[Function]}
93
- onResponderRelease={[Function]}
94
- onResponderTerminate={[Function]}
95
- onResponderTerminationRequest={[Function]}
96
- onStartShouldSetResponder={[Function]}
97
- style={
98
- Object {
99
- "bottom": 40,
100
- "opacity": 1,
101
- "position": "absolute",
102
- "right": 20,
103
- }
104
- }
105
- >
106
- <View
107
- style={
108
- Object {
109
- "paddingTop": 20,
110
- }
111
- }
112
- >
113
- <Image
114
- source={1}
115
- style={
116
- Object {
117
- "height": 20,
118
- "width": 20,
119
- }
120
- }
121
- />
122
- </View>
123
- </View>
124
- </View>
125
- `;
@@ -1,88 +0,0 @@
1
- import Clipboard from '@react-native-clipboard/clipboard'
2
- import { getClipboardData } from '../lib/getClipboardData'
3
- import { setClipboardData } from '../lib/setClipboardData'
4
-
5
- const Taro = {
6
- setClipboardData,
7
- getClipboardData
8
- }
9
-
10
- // 原生模块导出缺少 react_native_1.NativeModules.RNCClipboar setup mock
11
-
12
- describe('clipboard', () => {
13
- describe('setClipboardData', () => {
14
- test('should set value into Clipboard', async () => {
15
- const data = 'foo'
16
- const success = jest.fn()
17
- const fail = jest.fn()
18
- const complete = jest.fn()
19
-
20
- expect.assertions(7)
21
- const res = await Taro.setClipboardData({
22
- data,
23
- success,
24
- fail,
25
- complete
26
- })
27
- const expectMsg = 'setClipboardData:ok'
28
- expect(success.mock.calls.length).toBe(1)
29
- expect(success.mock.calls[0][0]).toEqual({ data, errMsg: expectMsg })
30
- expect(fail.mock.calls.length).toBe(0)
31
- expect(complete.mock.calls.length).toBe(1)
32
- expect(complete.mock.calls[0][0]).toEqual({ data, errMsg: expectMsg })
33
- expect(res.errMsg).toMatch(expectMsg)
34
-
35
- const clipData = await Clipboard.getString()
36
- expect(clipData).toEqual(data)
37
- })
38
-
39
- test('should fail when data is not string', () => {
40
- const data = {}
41
- const success = jest.fn()
42
- const fail = jest.fn()
43
- const complete = jest.fn()
44
-
45
- // expect.assertions(6)
46
- return Taro.setClipboardData({
47
- // @ts-ignore
48
- data,
49
- success,
50
- fail,
51
- complete
52
- }).catch(err => {
53
- const expectErrMsg = 'setClipboardData:fail parameter error: parameter.data should be String'
54
- expect(success.mock.calls.length).toBe(0)
55
- expect(fail.mock.calls.length).toBe(1)
56
- expect(fail.mock.calls[0][0]).toEqual({ errMsg: expectErrMsg })
57
- expect(complete.mock.calls.length).toBe(1)
58
- expect(complete.mock.calls[0][0]).toEqual({ errMsg: expectErrMsg })
59
- expect(err.errMsg).toMatch(expectErrMsg)
60
- })
61
- })
62
- })
63
-
64
- describe('getClipboardData', () => {
65
- test('可以获得正确的剪切板数据', async () => {
66
- const data = 'hey!hey!hey!'
67
- const success = jest.fn()
68
- const fail = jest.fn()
69
- const complete = jest.fn()
70
-
71
- expect.assertions(6)
72
- Clipboard.setString(data)
73
-
74
- const res = await Taro.getClipboardData({
75
- success,
76
- fail,
77
- complete
78
- })
79
- const expectErrMsg = 'getClipboardData:ok'
80
- expect(success.mock.calls.length).toBe(1)
81
- expect(fail.mock.calls.length).toBe(0)
82
- expect(success.mock.calls[0][0]).toEqual({ data, errMsg: expectErrMsg })
83
- expect(complete.mock.calls.length).toBe(1)
84
- expect(complete.mock.calls[0][0]).toEqual({ data, errMsg: expectErrMsg })
85
- expect(res.data).toEqual(data)
86
- })
87
- })
88
- })
@@ -1,37 +0,0 @@
1
- // import { DeviceMotion } from 'expo-sensors'
2
- import * as Taro from '../lib/deviceMotion'
3
-
4
- describe('deviceMotion', () => {
5
- it('should startDeviceMotionListening success', () => {
6
- const success = jest.fn()
7
- const fail = jest.fn()
8
- const complete = jest.fn()
9
- Taro.startDeviceMotionListening({
10
- success,
11
- fail,
12
- complete,
13
- })
14
- expect(success.mock.calls.length).toBe(1)
15
- expect(fail.mock.calls.length).toBe(0)
16
- expect(success.mock.calls.length).toBe(1)
17
- })
18
- it('should stopDeviceMotionListening success', () => {
19
- const success = jest.fn()
20
- const fail = jest.fn()
21
- const complete = jest.fn()
22
- Taro.stopDeviceMotionListening({
23
- success,
24
- fail,
25
- complete,
26
- })
27
- expect(success.mock.calls.length).toBe(1)
28
- expect(fail.mock.calls.length).toBe(0)
29
- expect(success.mock.calls.length).toBe(1)
30
- })
31
- // it('should onDeviceMotionChange success', () => {
32
- // const change = jest.fn().mockImplementation((ret) => {
33
- // expect(0).toBe(0)
34
- // })
35
- // Taro.onDeviceMotionChange(change)
36
- // })
37
- })
@@ -1,60 +0,0 @@
1
- import * as Taro from '../lib/getLocation'
2
- import { mockGetCurrentPosition } from './__mock__/mockRNCGeolocation'
3
-
4
- describe('location', () => {
5
- describe('getLocation', () => {
6
- // test('定位功能返回正常参数', () => {
7
- // const success = jest.fn()
8
- // const fail = jest.fn()
9
- // const complete = jest.fn()
10
-
11
- // const expectData = {
12
- // latitude: expect.any(Number),
13
- // longitude: expect.any(Number),
14
- // speed: expect.any(Number),
15
- // accuracy: expect.any(Number),
16
- // altitude: expect.any(Number),
17
- // verticalAccuracy: expect.any(Number),
18
- // horizontalAccuracy: expect.any(Number),
19
- // }
20
-
21
- // expect.assertions(6)
22
-
23
- // return Taro.getLocation({
24
- // success,
25
- // fail,
26
- // complete
27
- // }).then((res) => {
28
- // expect(success.mock.calls.length).toBe(1)
29
- // expect(fail.mock.calls.length).toBe(0)
30
- // expect(complete.mock.calls.length).toBe(1)
31
- // expect(complete.mock.calls[0][0]).toEqual(expect.objectContaining(expectData))
32
- // expect(success.mock.calls[0][0]).toEqual(expect.objectContaining(expectData))
33
- // expect(res).toEqual(expect.objectContaining(expectData))
34
- // })
35
- // })
36
- test('定位方法正常调用', () => {
37
- const success = jest.fn()
38
- const fail = jest.fn()
39
- const complete = jest.fn()
40
-
41
- // const expectData = {
42
- // latitude: expect.any(Number),
43
- // longitude: expect.any(Number),
44
- // speed: expect.any(Number),
45
- // accuracy: expect.any(Number),
46
- // altitude: expect.any(Number),
47
- // verticalAccuracy: expect.any(Number),
48
- // horizontalAccuracy: expect.any(Number),
49
- // }
50
-
51
- Taro.getLocation({
52
- success,
53
- fail,
54
- complete
55
- }).then(() => {
56
- expect(mockGetCurrentPosition.mock.calls.length).toBe(1)
57
- })
58
- })
59
- })
60
- })
@@ -1,101 +0,0 @@
1
- import React from 'react'
2
- import { Text } from 'react-native'
3
- import { render, fireEvent } from '@testing-library/react-native';
4
- import ActionSheet from '../lib/showActionSheet/ActionSheet'
5
- import Dialog from '../lib/showModal/Dialog'
6
- import { Mask } from '../lib/Mask'
7
- import { Popup } from '../lib/Popup'
8
-
9
- describe('interactive', function () {
10
- describe('showActionSheet', function () {
11
- it('should call success callback', function () {
12
- const onPress = jest.fn()
13
- const { getByText, getAllByText } = render(<ActionSheet
14
- autoDectect
15
- type={'ios'}
16
- visible
17
- onClose={jest.fn()}
18
- menus={['Option One', 'Option Two'].map((item) => {
19
- return {
20
- type: 'default',
21
- label: item,
22
- textStyle: { color: '#000000' },
23
- onPress,
24
- }
25
- })}
26
- actions={[
27
- {
28
- type: 'default',
29
- label: 'cancel',
30
- textStyle: { color: '#000000' },
31
- onPress: jest.fn()
32
- }
33
- ]}
34
- />)
35
- expect(getAllByText('Option One')).toHaveLength(1)
36
- expect(getAllByText('Option Two')).toHaveLength(1)
37
- expect(getAllByText('cancel')).toHaveLength(1)
38
- fireEvent.press(getByText('Option One'))
39
- expect(onPress).toHaveBeenCalled();
40
- })
41
- })
42
- describe('showModal', function () {
43
- it('should render Dialog success', function () {
44
- const { getByText } = render(<Dialog
45
- visible
46
- autoDectect
47
- title='TITLE'
48
- onClose={jest.fn()}
49
- buttons={[
50
- {
51
- type: '#000000',
52
- label: 'cancel',
53
- onPress: jest.fn()
54
- },
55
- {
56
- type: '#3CC51F',
57
- label: 'confirm',
58
- onPress: jest.fn()
59
- }
60
- ].filter(Boolean)}
61
- ><Text>Test</Text></Dialog>)
62
- expect(getByText('TITLE')).toHaveStyle({
63
- fontSize: 18
64
- })
65
- expect(getByText('Test')).toHaveStyle({
66
- fontSize: 15
67
- })
68
- expect(getByText('confirm')).toHaveStyle({
69
- color: '#3CC51F'
70
- })
71
- expect(getByText('cancel')).toHaveStyle({
72
- color: '#000000'
73
- })
74
- })
75
- })
76
- describe('Mask', () => {
77
- it('should emit Mask event success', () => {
78
- const onPress = jest.fn()
79
- const { getByText, getByLabelText } = render(<Mask style={{ backgroundColor: 'red' }} onPress={onPress}><Text>Press me</Text></Mask>)
80
- expect(getByLabelText('mask')).toHaveStyle({
81
- backgroundColor: 'red'
82
- })
83
- fireEvent.press(getByText('Press me'));
84
- expect(onPress).toHaveBeenCalled();
85
- })
86
- })
87
- describe('Popup', () => {
88
- it('should emit Popup event success', async () => {
89
- const onShow = jest.fn()
90
- const onClose = jest.fn()
91
- const { getByText } = render(<Popup
92
- visible
93
- style={{ backgroundColor: 'red' }}
94
- onShow={onShow}
95
- onClose={onClose}
96
- ><Text>Press me</Text></Popup>)
97
- fireEvent.press(getByText('Press me'));
98
- expect(onClose).toHaveBeenCalled();
99
- })
100
- })
101
- })
@@ -1,46 +0,0 @@
1
- import { DeviceEventEmitter } from 'react-native'
2
- import * as Taro from '../lib/keyboard'
3
-
4
- describe('keyboard', () => {
5
- it('should hideKeyboard success', () => {
6
- const success = jest.fn()
7
- const fail = jest.fn()
8
- const complete = jest.fn()
9
- Taro.hideKeyboard({
10
- success,
11
- fail,
12
- complete,
13
- })
14
- expect(success.mock.calls.length).toBe(1)
15
- expect(fail.mock.calls.length).toBe(0)
16
- expect(success.mock.calls.length).toBe(1)
17
- })
18
- it('should onKeyboardHeightChange success', () => {
19
- expect.assertions(4)
20
- const endCoordinates = { height: 200 }
21
- const change = jest.fn().mockImplementation(({ height }) => expect(height).toBe(endCoordinates.height))
22
- Taro.onKeyboardHeightChange(change)
23
- DeviceEventEmitter.emit('keyboardDidShow', { endCoordinates })
24
- expect(change.mock.calls.length).toBe(1)
25
- endCoordinates.height = 0
26
- DeviceEventEmitter.emit('keyboardDidHide', { endCoordinates })
27
- expect(change.mock.calls.length).toBe(2)
28
- Taro.offKeyboardHeightChange(change)
29
- })
30
-
31
- it('should offKeyboardHeightChange success', () => {
32
- expect.assertions(4)
33
- const endCoordinates = { height: 200 }
34
- const firstChange = jest.fn()
35
- const secondChange = jest.fn()
36
- Taro.onKeyboardHeightChange(firstChange)
37
- Taro.onKeyboardHeightChange(secondChange)
38
- DeviceEventEmitter.emit('keyboardDidShow', { endCoordinates })
39
- expect(firstChange.mock.calls.length).toBe(1)
40
- expect(secondChange.mock.calls.length).toBe(1)
41
- Taro.offKeyboardHeightChange(secondChange)
42
- DeviceEventEmitter.emit('keyboardDidHide', { endCoordinates })
43
- expect(firstChange.mock.calls.length).toBe(2)
44
- expect(secondChange.mock.calls.length).toBe(1)
45
- })
46
- })
@@ -1,104 +0,0 @@
1
- import { getImageInfo } from '../lib/getImageInfo'
2
- import { saveImageToPhotosAlbum } from '../lib/saveImageToPhotosAlbum'
3
- import { saveVideoToPhotosAlbum } from '../lib/saveVideoToPhotosAlbum'
4
-
5
- const Taro = {
6
- getImageInfo,
7
- saveImageToPhotosAlbum,
8
- saveVideoToPhotosAlbum,
9
- }
10
-
11
- // 原生模块导出缺少 react_native_1.NativeModules.RNCCameraRoll setup mock
12
-
13
- describe('media', () => {
14
- describe('getImageInfo', () => {
15
- test('能正确获取图片信息', () => {
16
- const url = 'https://img12.360buyimg.com/ling/jfs/t19387/224/2632923601/58290/3bbe4eda/5b03f63cN17d4a46c.png'
17
- const width = 320
18
- const height = 240
19
- const success = jest.fn()
20
- const fail = jest.fn()
21
- const complete = jest.fn()
22
-
23
- expect.assertions(8)
24
- return Taro.getImageInfo({
25
- src: url,
26
- success,
27
- fail,
28
- complete
29
- }).then((res) => {
30
- const expectRes = {
31
- width,
32
- height,
33
- path: url,
34
- orientation: 'up',
35
- type: ''
36
- }
37
- expect(success.mock.calls.length).toBe(1)
38
- expect(success.mock.calls[0][0]).toMatchObject(expectRes)
39
- expect(fail.mock.calls.length).toBe(0)
40
- expect(complete.mock.calls.length).toBe(1)
41
- expect(complete.mock.calls[0][0]).toMatchObject(expectRes)
42
- expect(res.width).toEqual(width)
43
- expect(res.height).toEqual(height)
44
- expect(res.path).toEqual(url)
45
- })
46
- })
47
- })
48
-
49
- describe('saveImageToPhotosAlbum', () => {
50
- test('能够正常保存图片', () => {
51
- const url = 'test.io/a.png'
52
- const expectMsg = 'saveImageToPhotosAlbum:ok'
53
-
54
- const success = jest.fn()
55
- const fail = jest.fn()
56
- const complete = jest.fn()
57
-
58
- expect.assertions(6)
59
- return Taro.saveImageToPhotosAlbum({
60
- filePath: url,
61
- success,
62
- fail,
63
- complete
64
- }).then((res) => {
65
- const path = `photo://${url}`
66
- expect(success.mock.calls.length).toBe(1)
67
- expect(success.mock.calls[0][0]).toEqual({ errMsg: expectMsg, path })
68
- expect(fail.mock.calls.length).toBe(0)
69
- expect(complete.mock.calls.length).toBe(1)
70
- expect(complete.mock.calls[0][0]).toEqual({ errMsg: expectMsg, path })
71
- // @ts-ignore
72
- expect(res.path).toEqual(path)
73
- })
74
- })
75
- })
76
-
77
- describe('saveVideoToPhotosAlbum', () => {
78
- test('能够正常保存视频', () => {
79
- const url = 'test.io/a.mp4'
80
- const expectMsg = 'saveVideoToPhotosAlbum:ok'
81
-
82
- const success = jest.fn()
83
- const fail = jest.fn()
84
- const complete = jest.fn()
85
-
86
- expect.assertions(6)
87
- return Taro.saveVideoToPhotosAlbum({
88
- filePath: url,
89
- success,
90
- fail,
91
- complete
92
- }).then((res) => {
93
- const path = `video://${url}`
94
- expect(success.mock.calls.length).toBe(1)
95
- expect(success.mock.calls[0][0]).toEqual({ errMsg: expectMsg, path })
96
- expect(fail.mock.calls.length).toBe(0)
97
- expect(complete.mock.calls.length).toBe(1)
98
- expect(complete.mock.calls[0][0]).toEqual({ errMsg: expectMsg, path })
99
- // @ts-ignore
100
- expect(res.path).toEqual(path)
101
- })
102
- })
103
- })
104
- })
@@ -1,57 +0,0 @@
1
- import * as network from '../lib/network'
2
- const Taro = Object.assign({}, network)
3
-
4
- describe('network', () => {
5
- describe('getNetworkType', () => {
6
- test('能正常返回网络类型', () => {
7
- const networkType = expect.any(String)
8
- const success = jest.fn()
9
- const fail = jest.fn()
10
- const complete = jest.fn()
11
-
12
- return Taro.getNetworkType({
13
- success,
14
- fail,
15
- complete
16
- }).then((res) => {
17
- expect.assertions(6)
18
- expect(success.mock.calls.length).toBe(1)
19
- expect(success.mock.calls[0][0]).toEqual({ networkType, errMsg: 'getNetworkType:ok' })
20
- expect(fail.mock.calls.length).toBe(0)
21
- expect(complete.mock.calls.length).toBe(1)
22
- expect(complete.mock.calls[0][0]).toEqual({ networkType, errMsg: 'getNetworkType:ok' })
23
- expect(res.networkType).toEqual(networkType)
24
- })
25
- })
26
- })
27
- // mock react_native_1.NativeModules.RNCNetInfo 暂不mock 内部实现,比如事件的发布订阅
28
- // describe('onNetworkStatusChange', () => {
29
- // test('能够正常监听网络状态的变化', done => {
30
- // const networkType = '3g'
31
- // const networkCb = (res) => {
32
- // expect(res).toEqual({ networkType, isConnected: true })
33
- // done()
34
- // }
35
- // expect.assertions(1)
36
-
37
- // Taro.onNetworkStatusChange(networkCb)
38
- // NetInfo.changeNetworkType('cellular', networkType)
39
- // NetInfo.fetch().then(state => {
40
- // console.log("Connection type", state.type)
41
- // console.log("Is connected?", state.isConnected)
42
- // })
43
- // })
44
-
45
- // test('能返回正确的关于网络状态的判断', done => {
46
- // const networkType = 'none'
47
- // const networkCb = (res) => {
48
- // expect(res).toEqual({ networkType, isConnected: false })
49
- // done()
50
- // }
51
- // expect.assertions(1)
52
-
53
- // Taro.onNetworkStatusChange(networkCb)
54
- // NetInfo.changeNetworkType('none')
55
- // })
56
- // })
57
- })
@@ -1,25 +0,0 @@
1
- import { base64ToArrayBuffer } from '../lib/base64ToArrayBuffer'
2
- import { arrayBufferToBase64 } from '../lib/arrayBufferToBase64'
3
-
4
- const Taro = { base64ToArrayBuffer, arrayBufferToBase64 }
5
-
6
- describe('base64 and arrayBuffer', () => {
7
- describe('arrayBufferToBase64', () => {
8
- test('能正常转换为base64', () => {
9
- const expectBase64 = 'CxZY'
10
- const arrayBuffer = new Uint8Array([11, 22, 88])
11
- const base64 = Taro.arrayBufferToBase64(arrayBuffer)
12
- expect(base64).toBe(expectBase64)
13
- })
14
- })
15
-
16
- describe('base64ToArrayBuffer', () => {
17
- test('能正常转换为ArrayBuffer', () => {
18
- const base64 = 'CxZY'
19
- const arrayBuffer = Taro.base64ToArrayBuffer(base64)
20
- expect(arrayBuffer[0]).toBe(11)
21
- expect(arrayBuffer[1]).toBe(22)
22
- expect(arrayBuffer[2]).toBe(88)
23
- })
24
- })
25
- })
@@ -1,31 +0,0 @@
1
- import * as phone from '../lib/makePhoneCall'
2
-
3
- const Taro = Object.assign({}, phone)
4
-
5
- describe('phone', () => {
6
- describe('makePhoneCall', () => {
7
- test('能正常调用电话功能', () => {
8
- const phoneNumber = '12345678911'
9
- const success = jest.fn()
10
- const fail = jest.fn()
11
- const complete = jest.fn()
12
-
13
- expect.assertions(6)
14
-
15
- return Taro.makePhoneCall({
16
- phoneNumber,
17
- success,
18
- fail,
19
- complete
20
- }).then((res) => {
21
- const expectMsg = 'makePhoneCall:ok'
22
- expect(success.mock.calls.length).toBe(1)
23
- expect(success.mock.calls[0][0]).toEqual({ errMsg: expectMsg })
24
- expect(fail.mock.calls.length).toBe(0)
25
- expect(complete.mock.calls.length).toBe(1)
26
- expect(complete.mock.calls[0][0]).toEqual({ errMsg: expectMsg })
27
- expect(res.errMsg).toMatch(expectMsg)
28
- })
29
- })
30
- })
31
- })