@eohjsc/react-native-smart-city 0.2.23 → 0.2.26
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.
- package/README.md +1 -1
- package/assets/images/OneTap@1x.svg +14 -0
- package/index.js +0 -2
- package/package.json +11 -3
- package/src/Images/Common/arrow-back.png +0 -0
- package/src/Images/Common/checked@2x.png +0 -0
- package/src/Images/Common/checked@3x.png +0 -0
- package/src/Images/Common/file.png +0 -0
- package/src/Images/Common/fullscreen.png +0 -0
- package/src/Images/Common/refresh.png +0 -0
- package/src/commons/ActionGroup/NumberUpDownActionTemplate.js +1 -1
- package/src/commons/ActionGroup/OnOffTemplate/index.js +4 -4
- package/src/commons/ActionGroup/OptionsDropdownActionTemplate.js +1 -1
- package/src/commons/ActionGroup/StatesGridActionTemplate.js +2 -2
- package/src/commons/ActionGroup/__test__/OnOffButtonTemplate.test.js +8 -13
- package/src/commons/ActionGroup/__test__/OnOffTemplate.test.js +3 -3
- package/src/commons/ActionGroup/__test__/OptionsDropdownTemplate.test.js +26 -46
- package/src/commons/ActionGroup/__test__/ThreeButtonTemplate.test.js +11 -5
- package/src/commons/ActionGroup/__test__/TimerActionTemplate.test.js +14 -8
- package/src/commons/ActionGroup/__test__/TimerActionTemplateWithutConfigValue.test.js +17 -23
- package/src/commons/ActionGroup/__test__/__snapshots__/ThreeButtonTemplate.test.js.snap +241 -223
- package/src/commons/ActionGroup/__test__/index.test.js +39 -107
- package/src/commons/ActionTemplate/ActionTemplateStyles.js +14 -0
- package/src/commons/ActionTemplate/OnOffButtonAction.js +40 -0
- package/src/commons/ActionTemplate/OnOffButtonActionStyles.js +11 -0
- package/src/commons/ActionTemplate/OneButtonAction.js +26 -0
- package/src/commons/ActionTemplate/OneButtonActionStyles.js +11 -0
- package/src/commons/ActionTemplate/ThreeButtonAction.js +55 -0
- package/src/commons/ActionTemplate/ThreeButtonActionStyles.js +11 -0
- package/src/commons/ActionTemplate/__test__/OnOffButtonAction.test.js +34 -0
- package/src/commons/ActionTemplate/__test__/OneButtonAction.test.js +33 -0
- package/src/commons/ActionTemplate/__test__/ThreeButtonAction.test.js +35 -0
- package/src/commons/ActionTemplate/__test__/index.test.js +71 -0
- package/src/commons/ActionTemplate/index.js +69 -0
- package/src/commons/Automate/ItemAutomate.js +1 -31
- package/src/commons/Automate/ItemAutomateStyles.js +10 -7
- package/src/commons/Automate/ItemScriptAction.js +9 -5
- package/src/commons/Automate/ItemScriptActionStyles.js +4 -0
- package/src/commons/ChartLoading/__test__/ChartLoading.test.js +9 -7
- package/src/commons/Device/DeviceAlertStatus.js +3 -1
- package/src/commons/Device/Emergency/__test__/EmergencyButton.test.js +14 -6
- package/src/commons/Device/Emergency/__test__/EmergencyDetail.test.js +10 -2
- package/src/commons/Device/FlatListItems.js +1 -1
- package/src/commons/Device/ItemAddNew/index.js +6 -1
- package/src/commons/Device/WindDirection/Compass/Compass.test.js +19 -11
- package/src/commons/Device/WindSpeed/LinearChart/__test__/LinearChart.test.js +9 -3
- package/src/commons/Device/WindSpeed/LinearChart/__test__/__snapshots__/LinearChart.test.js.snap +0 -81
- package/src/commons/Device/__test__/ConnectedViewHeader.test.js +16 -8
- package/src/commons/Device/__test__/DeviceAlertStatus.test.js +13 -6
- package/src/commons/Device/__test__/DisconnectedView.test.js +13 -5
- package/src/commons/Device/__test__/FlatListItems.test.js +9 -1
- package/src/commons/Device/__test__/FooterInfo.test.js +13 -4
- package/src/commons/Device/__test__/SensorConnectedStatus.test.js +9 -1
- package/src/commons/Device/__test__/__snapshots__/DisconnectedView.test.js.snap +20 -20
- package/src/commons/DisplayChecking/__test__/DisplayChecking.test.js +28 -0
- package/src/commons/Explore/SearchBox/__test__/SearchBox.test.js +9 -2
- package/src/commons/Explore/__test__/CityItem.test.js +13 -15
- package/src/commons/Explore/__test__/HeaderLabel.test.js +15 -9
- package/src/commons/Header/HeaderCustom.js +7 -1
- package/src/commons/Header/__test__/HeaderCT.test.js +12 -4
- package/src/commons/ImagePicker/__test__/ImagePicker.test.js +19 -13
- package/src/commons/MediaPlayerDetail/__test__/MediaPlayerDetail.test.js +14 -8
- package/src/commons/MediaPlayerDetail/index.js +2 -0
- package/src/commons/MenuActionAddnew/__test__/MenuActionAddNew.test.js +11 -20
- package/src/commons/Modal/ModalBottom.js +51 -0
- package/src/commons/Modal/Styles/ModalBottomStyles.js +35 -0
- package/src/commons/Modal/index.js +2 -1
- package/src/commons/SelectActionCard/SelectActionStyles.js +16 -0
- package/src/commons/SelectActionCard/index.js +30 -0
- package/src/commons/Sharing/__test__/DevicePermissionsCheckbox.test.js +15 -9
- package/src/commons/Sharing/__test__/MemberList.test.js +17 -25
- package/src/commons/Sharing/__test__/StationDevicePermission.test.js +17 -12
- package/src/commons/Sharing/__test__/WrapHeaderScrollable.test.js +0 -9
- package/src/commons/SubUnit/OneTap/ItemOneTap.js +20 -9
- package/src/commons/SubUnit/OneTap/__test__/SubUnitAutomate.test.js +149 -0
- package/src/commons/SubUnit/OneTap/index.js +16 -6
- package/src/commons/SubUnit/ShortDetail.js +9 -5
- package/src/commons/SubUnit/__test__/ShortDetail.test.js +14 -6
- package/src/commons/Today/__test__/Today.test.js +9 -1
- package/src/commons/Today/__test__/__snapshots__/Today.test.js.snap +1 -1
- package/src/commons/UnitSummary/AirQuality/__test__/index.test.js +16 -17
- package/src/commons/UnitSummary/__test__/TotalPowerConsumption.test.js +15 -9
- package/src/configs/API.js +6 -1
- package/src/configs/Constants.js +42 -0
- package/src/context/SCContext.tsx +2 -26
- package/src/context/actionType.ts +11 -0
- package/src/context/mockStore.ts +49 -0
- package/src/context/reducer.ts +21 -0
- package/src/hooks/Common/__test__/useTranslations.test.js +23 -0
- package/src/hooks/Common/index.js +2 -0
- package/src/hooks/Common/useGetIdUser.js +9 -0
- package/src/iot/RemoteControl/__test__/Bluetooth.test.js +3 -6
- package/src/iot/RemoteControl/__test__/GoogleHome.test.js +3 -4
- package/src/iot/RemoteControl/__test__/Internet.test.js +1 -9
- package/src/iot/RemoteControl/__test__/LgThinq.test.js +7 -10
- package/src/navigations/UnitStack.js +14 -0
- package/src/screens/AQIGuide/__test__/AQIGuide.test.js +9 -1
- package/src/screens/AQIGuide/index.js +1 -1
- package/src/screens/ActivityLog/__test__/index.test.js +14 -39
- package/src/screens/AddCommon/SelectSubUnit.js +2 -2
- package/src/screens/AddCommon/__test__/SelectSubUnit.test.js +61 -0
- package/src/screens/AddCommon/__test__/SelectUnit.test.js +18 -10
- package/src/screens/AddNewAction/Device/__test__/index.test.js +42 -0
- package/src/screens/AddNewAction/SelectAction.js +152 -0
- package/src/screens/AddNewAction/SelectDevice.js +25 -11
- package/src/screens/AddNewAction/Styles/SelectActionStyles.js +24 -0
- package/src/screens/AddNewAction/__test__/SelectAction.test.js +172 -0
- package/src/screens/AddNewAction/__test__/SelectDevice.test.js +191 -0
- package/src/screens/AddNewAutoSmart/__test__/AddNewAutoSmart.test.js +55 -0
- package/src/screens/AddNewAutoSmart/index.js +85 -0
- package/src/screens/AddNewAutoSmart/styles/AddNewAutoSmartStyles.js +36 -0
- package/src/screens/AddNewDevice/__test__/AddNewDevice.test.js +29 -14
- package/src/screens/AddNewDevice/__test__/ConnectDevices.test.js +19 -8
- package/src/screens/AddNewDevice/__test__/ConnectingDevices.test.js +16 -7
- package/src/screens/AddNewGateway/__test__/AddNewGateway.test.js +35 -73
- package/src/screens/AddNewGateway/__test__/ConnectedGateway.test.js +14 -5
- package/src/screens/AddNewGateway/__test__/ConnectingGateway.test.js +20 -11
- package/src/screens/AddNewOneTap/__test__/AddNewOneTap.test.js +129 -0
- package/src/screens/AddNewOneTap/index.js +20 -7
- package/src/screens/AddNewScriptAction/AddNewScriptActionStyles.js +1 -0
- package/src/screens/AddNewScriptAction/index.js +21 -13
- package/src/screens/Device/__test__/detail.test.js +26 -19
- package/src/screens/Device/detail.js +5 -4
- package/src/screens/Device/hooks/useCountUp.js +4 -0
- package/src/screens/Device/styles.js +5 -1
- package/src/screens/DeviceInfo/__test__/index.test.js +12 -3
- package/src/screens/EditActionsList/Styles/indexStyles.js +11 -0
- package/src/screens/EditActionsList/index.js +83 -19
- package/src/screens/EmergencyContacts/__test__/EmergencyContactAddNew.test.js +15 -19
- package/src/screens/EmergencyContacts/__test__/EmergencyContactList.test.js +19 -24
- package/src/screens/EmergencyContacts/__test__/EmergencyContactsSelectContacts.test.js +10 -25
- package/src/screens/ManageAccess/__test__/ManageAccess.test.js +13 -1
- package/src/screens/ScanChipQR/__test__/ScanChipQR.test.js +2 -11
- package/src/screens/ScriptDetail/Styles/indexStyles.js +4 -1
- package/src/screens/ScriptDetail/index.js +30 -28
- package/src/screens/SharedUnit/__test__/TabHeader.test.js +40 -0
- package/src/screens/Sharing/__test__/MemberList.test.js +17 -14
- package/src/screens/Sharing/__test__/SelectPermission.test.js +16 -8
- package/src/screens/Sharing/__test__/SelectUser.test.js +33 -16
- package/src/screens/SubUnit/Detail.js +3 -3
- package/src/screens/SubUnit/ManageSubUnit.js +8 -8
- package/src/screens/SubUnit/__test__/AddSubUnit.test.js +17 -12
- package/src/screens/SubUnit/__test__/Detail.test.js +11 -31
- package/src/screens/SubUnit/__test__/ManageSubUnit.test.js +42 -32
- package/src/screens/TDSGuide/__test__/TDSGuide.test.js +9 -1
- package/src/screens/UVIndexGuide/__test__/UVIndexGuide.test.js +9 -1
- package/src/screens/Unit/Detail.js +33 -11
- package/src/screens/Unit/ManageUnit.js +1 -1
- package/src/screens/Unit/__test__/AddMenu.test.js +15 -15
- package/src/screens/Unit/__test__/CheckSendEmail.test.js +19 -10
- package/src/screens/Unit/__test__/Detail.test.js +92 -33
- package/src/screens/Unit/__test__/ManageUnit.test.js +16 -23
- package/src/screens/Unit/components/__test__/SharedUnit.test.js +11 -2
- package/src/screens/UnitSummary/__test__/index.test.js +12 -4
- package/src/screens/UnitSummary/components/3PPowerConsumption/__test__/3PPowerConsumption.test.js +13 -3
- package/src/screens/UnitSummary/components/PowerConsumption/__test__/PowerConsumption.test.js +16 -12
- package/src/screens/UnitSummary/components/RunningDevices/__test__/index.test.js +2 -2
- package/src/screens/UnitSummary/components/UvIndex/__test__/__snapshots__/index.test.js.snap +37 -37
- package/src/screens/UnitSummary/components/UvIndex/__test__/index.test.js +14 -6
- package/src/screens/UnitSummary/components/WaterQuality/__test__/index.test.js +11 -5
- package/src/screens/UnitSummary/components/__test__/TotalPowerConsumption.test.js +13 -7
- package/src/screens/WaterQualityGuide/__test__/index.test.js +12 -12
- package/src/utils/I18n/translations/en.json +9 -2
- package/src/utils/I18n/translations/vi.json +10 -3
- package/src/utils/Route/index.js +3 -2
- package/assets/images/Event.svg +0 -9
- package/src/commons/ChartLoading/__test__/__snapshots__/ChartLoading.test.js.snap +0 -66
- package/src/commons/Device/HistoryChart/__test__/HistoryChart.test.js +0 -57
- package/src/commons/Device/HistoryChart/__test__/__snapshots__/HistoryChart.test.js.snap +0 -593
- package/src/commons/Explore/SearchBox/__test__/__snapshots__/SearchBox.test.js.snap +0 -59
- package/src/commons/Explore/__test__/HeaderExplore.test.js +0 -21
- package/src/commons/Header/__test__/Header.test.js +0 -24
- package/src/commons/MenuActionAddnew/__test__/__snapshots__/MenuActionAddNew.test.js.snap +0 -788
- package/src/commons/Sharing/__test__/__snapshots__/WrapHeaderScrollable.test.js.snap +0 -174
- package/src/commons/UnitSummary/AirQuality/__test__/__snapshots__/index.test.js.snap +0 -26679
- package/src/iot/RemoteControl/__test__/index.test.js +0 -102
- package/src/iot/__test__/Monitor.test.js +0 -119
- package/src/navigations/AddNewActionStack.js +0 -23
- package/src/screens/EmergencyContacts/__test__/__snapshots__/EmergencyContactAddNew.test.js.snap +0 -1706
- package/src/screens/EmergencyContacts/__test__/__snapshots__/EmergencyContactList.test.js.snap +0 -4276
- package/src/screens/EmergencyContacts/__test__/__snapshots__/EmergencyContactsSelectContacts.test.js.snap +0 -2240
- package/src/screens/SyncLGDevice/__test__/AddLGDevice.test.js +0 -359
- package/src/screens/Unit/MyAllUnit/__test__/__snapshots__/index.test.js.snap +0 -1001
- package/src/screens/Unit/MyAllUnit/__test__/index.test.js +0 -48
- package/src/screens/Unit/components/MyAllUnit/__test__/__snapshots__/index.test.js.snap +0 -1001
- package/src/screens/Unit/components/MyAllUnit/__test__/index.test.js +0 -48
- package/src/screens/Unit/components/__test__/MyUnit.test.js +0 -85
- package/src/screens/UnitSummary/components/WaterQuality/__test__/__snapshots__/index.test.js.snap +0 -1574
- package/src/screens/WaterQualityGuide/__test__/__snapshots__/index.test.js.snap +0 -3375
- package/src/utils/Converter/__test__/time.test.js +0 -128
- package/src/utils/I18n/index.test.js +0 -7
|
@@ -5,6 +5,14 @@ import { Text } from 'react-native';
|
|
|
5
5
|
import { TESTID } from '../../../configs/Constants';
|
|
6
6
|
|
|
7
7
|
import UVIndexGuide from '../index';
|
|
8
|
+
import { mockSCStore } from '../../../context/mockStore';
|
|
9
|
+
import { SCProvider } from '../../../context';
|
|
10
|
+
|
|
11
|
+
const wrapComponent = () => (
|
|
12
|
+
<SCProvider initState={mockSCStore({})}>
|
|
13
|
+
<UVIndexGuide />
|
|
14
|
+
</SCProvider>
|
|
15
|
+
);
|
|
8
16
|
|
|
9
17
|
jest.mock('react-redux', () => ({
|
|
10
18
|
...jest.requireActual('react-redux'),
|
|
@@ -21,7 +29,7 @@ describe('Test UV Index Guide', () => {
|
|
|
21
29
|
test('render UV Index Guide', async () => {
|
|
22
30
|
let tree;
|
|
23
31
|
act(() => {
|
|
24
|
-
tree = create(
|
|
32
|
+
tree = create(wrapComponent());
|
|
25
33
|
});
|
|
26
34
|
|
|
27
35
|
const instance = tree.root;
|
|
@@ -24,7 +24,8 @@ import CameraDevice from '../../commons/CameraDevice';
|
|
|
24
24
|
import { ModalFullVideo } from '../../commons/Modal';
|
|
25
25
|
import { useNavigation } from '@react-navigation/native';
|
|
26
26
|
import Routes from '../../utils/Route';
|
|
27
|
-
import
|
|
27
|
+
import SubUnitAutomate from '../../commons/SubUnit/OneTap';
|
|
28
|
+
import { AUTOMATE_TYPE } from '../../configs/Constants';
|
|
28
29
|
|
|
29
30
|
const UnitDetail = ({ route }) => {
|
|
30
31
|
const t = useTranslations();
|
|
@@ -37,7 +38,8 @@ const UnitDetail = ({ route }) => {
|
|
|
37
38
|
const [appState, setAppState] = useState(AppState.currentState);
|
|
38
39
|
const [listMenuItem, setListMenuItem] = useState([]);
|
|
39
40
|
const [listStation, setListStation] = useState([]);
|
|
40
|
-
const [
|
|
41
|
+
const [oneTap, setOneTap] = useState([]);
|
|
42
|
+
const [script, setScript] = useState([]);
|
|
41
43
|
const [isGGHomeConnected, setIsGGHomeConnected] = useState(false);
|
|
42
44
|
const [station, setStation] = useState([]);
|
|
43
45
|
const [indexStation, setIndexStation] = useState(0);
|
|
@@ -61,11 +63,10 @@ const UnitDetail = ({ route }) => {
|
|
|
61
63
|
|
|
62
64
|
const prepareData = useCallback(
|
|
63
65
|
(rawUnitData) => {
|
|
64
|
-
|
|
66
|
+
rawUnitData.stations.unshift({
|
|
65
67
|
isOneTap: true,
|
|
66
68
|
name: 'One-Tap',
|
|
67
|
-
};
|
|
68
|
-
rawUnitData.stations.unshift(oneTap);
|
|
69
|
+
});
|
|
69
70
|
const favorites = {
|
|
70
71
|
isFakeStation: true,
|
|
71
72
|
isFavorites: true,
|
|
@@ -81,11 +82,16 @@ const UnitDetail = ({ route }) => {
|
|
|
81
82
|
favorites.sensors = favorites.sensors.concat(favoriteDevices);
|
|
82
83
|
}
|
|
83
84
|
});
|
|
85
|
+
rawUnitData.stations.push({
|
|
86
|
+
isScript: true,
|
|
87
|
+
name: t('Script'),
|
|
88
|
+
});
|
|
84
89
|
},
|
|
85
90
|
[t]
|
|
86
91
|
);
|
|
87
92
|
|
|
88
93
|
const fetchDetails = useCallback(async () => {
|
|
94
|
+
getAutomates();
|
|
89
95
|
await fetchWithCache(API.UNIT.UNIT_DETAIL(unitId), {}, (response) => {
|
|
90
96
|
const { success, data } = response;
|
|
91
97
|
if (success) {
|
|
@@ -93,13 +99,14 @@ const UnitDetail = ({ route }) => {
|
|
|
93
99
|
setUnit(data);
|
|
94
100
|
}
|
|
95
101
|
});
|
|
96
|
-
}, [setUnit, unitId, prepareData]);
|
|
102
|
+
}, [setUnit, unitId, prepareData, getAutomates]);
|
|
97
103
|
|
|
98
|
-
const
|
|
104
|
+
const getAutomates = useCallback(async () => {
|
|
99
105
|
await fetchWithCache(API.UNIT.AUTOMATE(unitId), {}, (response) => {
|
|
100
106
|
const { success, data } = response;
|
|
101
107
|
if (success) {
|
|
102
|
-
|
|
108
|
+
setOneTap(data.filter((item) => item.type === AUTOMATE_TYPE.ONE_TAP));
|
|
109
|
+
setScript(data.filter((item) => item.type !== AUTOMATE_TYPE.ONE_TAP));
|
|
103
110
|
}
|
|
104
111
|
});
|
|
105
112
|
}, [unitId]);
|
|
@@ -185,9 +192,8 @@ const UnitDetail = ({ route }) => {
|
|
|
185
192
|
useEffect(() => {
|
|
186
193
|
if (isFocused) {
|
|
187
194
|
fetchDetails();
|
|
188
|
-
getScriptOneTap();
|
|
189
195
|
}
|
|
190
|
-
}, [fetchDetails,
|
|
196
|
+
}, [fetchDetails, isFocused]);
|
|
191
197
|
|
|
192
198
|
useEffect(() => {
|
|
193
199
|
if (unit.stations) {
|
|
@@ -225,7 +231,23 @@ const UnitDetail = ({ route }) => {
|
|
|
225
231
|
/>
|
|
226
232
|
);
|
|
227
233
|
} else if (station.isOneTap) {
|
|
228
|
-
return
|
|
234
|
+
return (
|
|
235
|
+
<SubUnitAutomate
|
|
236
|
+
isOwner={isOwner}
|
|
237
|
+
type={AUTOMATE_TYPE.ONE_TAP}
|
|
238
|
+
automates={oneTap}
|
|
239
|
+
unit={unit}
|
|
240
|
+
/>
|
|
241
|
+
);
|
|
242
|
+
} else if (station.isScript) {
|
|
243
|
+
return (
|
|
244
|
+
<SubUnitAutomate
|
|
245
|
+
isOwner={isOwner}
|
|
246
|
+
type={AUTOMATE_TYPE.VALUE_CHANGE}
|
|
247
|
+
automates={script}
|
|
248
|
+
unit={unit}
|
|
249
|
+
/>
|
|
250
|
+
);
|
|
229
251
|
} else if (station) {
|
|
230
252
|
return (
|
|
231
253
|
<ShortDetailSubUnit
|
|
@@ -181,7 +181,7 @@ const ManageUnit = ({ route }) => {
|
|
|
181
181
|
</ButtonWrapper>
|
|
182
182
|
<ButtonWrapper
|
|
183
183
|
title={t('manage_sub_units')}
|
|
184
|
-
value={`${unit
|
|
184
|
+
value={`${unit?.stations?.length} sub-units`}
|
|
185
185
|
/>
|
|
186
186
|
<ButtonWrapper
|
|
187
187
|
onPress={handleChoosePhoto}
|
|
@@ -2,12 +2,25 @@ import React from 'react';
|
|
|
2
2
|
import { act, create } from 'react-test-renderer';
|
|
3
3
|
|
|
4
4
|
import MenuActionAddnew from '../../../commons/MenuActionAddnew';
|
|
5
|
+
import { SCProvider } from '../../../context';
|
|
6
|
+
import { mockSCStore } from '../../../context/mockStore';
|
|
5
7
|
import AddMenu from '../AddMenu';
|
|
6
8
|
|
|
7
9
|
const mockedNavigate = jest.fn();
|
|
8
10
|
const mockedAfterItemClick = jest.fn();
|
|
9
11
|
const mockedHideAddModal = jest.fn();
|
|
10
12
|
|
|
13
|
+
const wrapComponent = (unit) => (
|
|
14
|
+
<SCProvider initState={mockSCStore({})}>
|
|
15
|
+
<AddMenu
|
|
16
|
+
unit={unit}
|
|
17
|
+
afterItemClick={mockedAfterItemClick}
|
|
18
|
+
showAdd={true}
|
|
19
|
+
setHideAdd={mockedHideAddModal}
|
|
20
|
+
/>
|
|
21
|
+
</SCProvider>
|
|
22
|
+
);
|
|
23
|
+
|
|
11
24
|
jest.mock('@react-navigation/native', () => {
|
|
12
25
|
return {
|
|
13
26
|
...jest.requireActual('@react-navigation/native'),
|
|
@@ -22,26 +35,13 @@ describe('Test AddMenu Unit', () => {
|
|
|
22
35
|
let tree;
|
|
23
36
|
test('render AddMenu without route', async () => {
|
|
24
37
|
let unit = { id: 1, name: 'Unit 1' };
|
|
25
|
-
let route_data = { route: '', data: {} };
|
|
26
38
|
await act(async () => {
|
|
27
|
-
tree = create(
|
|
28
|
-
<AddMenu
|
|
29
|
-
unit={unit}
|
|
30
|
-
afterItemClick={mockedAfterItemClick}
|
|
31
|
-
showAdd={true}
|
|
32
|
-
setHideAdd={mockedHideAddModal}
|
|
33
|
-
/>
|
|
34
|
-
);
|
|
39
|
+
tree = create(wrapComponent(unit));
|
|
35
40
|
});
|
|
36
41
|
|
|
37
42
|
const instance = tree.root;
|
|
38
43
|
const menuActionAddnew = instance.findAllByType(MenuActionAddnew);
|
|
39
|
-
expect(menuActionAddnew).toHaveLength(
|
|
40
|
-
await act(async () => {
|
|
41
|
-
await menuActionAddnew[0].props.onItemClick(route_data);
|
|
42
|
-
});
|
|
44
|
+
expect(menuActionAddnew).toHaveLength(0);
|
|
43
45
|
expect(mockedNavigate).toHaveBeenCalledTimes(0);
|
|
44
|
-
expect(mockedAfterItemClick).toHaveBeenCalledTimes(1);
|
|
45
|
-
expect(mockedHideAddModal).toHaveBeenCalledWith(true);
|
|
46
46
|
});
|
|
47
47
|
});
|
|
@@ -5,6 +5,8 @@ import renderer, { act } from 'react-test-renderer';
|
|
|
5
5
|
import UnitDetail from '../Detail';
|
|
6
6
|
import { useIsFocused } from '@react-navigation/native';
|
|
7
7
|
import AsyncStorage from '@react-native-community/async-storage';
|
|
8
|
+
import { SCProvider } from '../../../context';
|
|
9
|
+
import { mockSCStore } from '../../../context/mockStore';
|
|
8
10
|
|
|
9
11
|
const mockDispatch = jest.fn();
|
|
10
12
|
|
|
@@ -24,6 +26,15 @@ jest.mock('../../../iot/RemoteControl/GoogleHome', () => ({
|
|
|
24
26
|
|
|
25
27
|
jest.mock('axios');
|
|
26
28
|
|
|
29
|
+
const wrapComponent = (route, unitData, account) => (
|
|
30
|
+
<SCProvider initState={mockSCStore({})}>
|
|
31
|
+
<UnitDetail
|
|
32
|
+
route={{ params: { ...route.params, unitData } }}
|
|
33
|
+
account={account}
|
|
34
|
+
/>
|
|
35
|
+
</SCProvider>
|
|
36
|
+
);
|
|
37
|
+
|
|
27
38
|
describe('Test UnitDetail google home disconnect', () => {
|
|
28
39
|
const route = {
|
|
29
40
|
params: {
|
|
@@ -58,17 +69,15 @@ describe('Test UnitDetail google home disconnect', () => {
|
|
|
58
69
|
jest.useFakeTimers();
|
|
59
70
|
|
|
60
71
|
await act(async () => {
|
|
61
|
-
await renderer.create(
|
|
62
|
-
<UnitDetail
|
|
63
|
-
route={{ params: { ...route.params, unitData } }}
|
|
64
|
-
account={account}
|
|
65
|
-
/>
|
|
66
|
-
);
|
|
72
|
+
await renderer.create(wrapComponent(route, unitData, account));
|
|
67
73
|
});
|
|
68
74
|
|
|
69
|
-
expect(axios.post).toHaveBeenCalledWith(
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
75
|
+
expect(axios.post).toHaveBeenCalledWith(
|
|
76
|
+
API.GOOGLE_HOME.CHECK_SEND_EMAIL(),
|
|
77
|
+
{
|
|
78
|
+
chip_id: 1,
|
|
79
|
+
is_connected: false,
|
|
80
|
+
}
|
|
81
|
+
);
|
|
73
82
|
});
|
|
74
83
|
});
|
|
@@ -3,7 +3,7 @@ import React from 'react';
|
|
|
3
3
|
import { TouchableOpacity } from 'react-native';
|
|
4
4
|
import renderer, { act } from 'react-test-renderer';
|
|
5
5
|
import { createConnection, getStates } from 'home-assistant-js-websocket';
|
|
6
|
-
import ParallaxScrollView from 'libs/react-native-parallax-scroll-view';
|
|
6
|
+
import ParallaxScrollView from '../../../libs/react-native-parallax-scroll-view';
|
|
7
7
|
import { BleManager } from 'react-native-ble-plx';
|
|
8
8
|
import { useIsFocused } from '@react-navigation/native';
|
|
9
9
|
import AsyncStorage from '@react-native-community/async-storage';
|
|
@@ -13,10 +13,20 @@ import { API } from '../../../configs';
|
|
|
13
13
|
import ShortDetailSubUnit from '../../../commons/SubUnit/ShortDetail';
|
|
14
14
|
import Summaries from '../Summaries';
|
|
15
15
|
import { TESTID } from '../../../configs/Constants';
|
|
16
|
-
import
|
|
16
|
+
import { SCProvider } from '../../../context';
|
|
17
|
+
import { mockSCStore } from '../../../context/mockStore';
|
|
18
|
+
import SubUnitAutomate from '../../../commons/SubUnit/OneTap';
|
|
19
|
+
import CameraDevice from '../../../commons/CameraDevice';
|
|
20
|
+
import { ModalFullVideo } from '../../../commons/Modal';
|
|
17
21
|
|
|
18
22
|
const mockDispatch = jest.fn();
|
|
19
23
|
|
|
24
|
+
const wrapComponent = (route, account) => (
|
|
25
|
+
<SCProvider initState={mockSCStore({})}>
|
|
26
|
+
<UnitDetail route={route} account={account} />
|
|
27
|
+
</SCProvider>
|
|
28
|
+
);
|
|
29
|
+
|
|
20
30
|
jest.mock('react-redux', () => {
|
|
21
31
|
return {
|
|
22
32
|
...jest.requireActual('react-redux'),
|
|
@@ -77,7 +87,7 @@ describe('Test UnitDetail', () => {
|
|
|
77
87
|
data: {},
|
|
78
88
|
}));
|
|
79
89
|
await act(async () => {
|
|
80
|
-
await renderer.create(
|
|
90
|
+
await renderer.create(wrapComponent(route));
|
|
81
91
|
});
|
|
82
92
|
|
|
83
93
|
expect(axios.get).toHaveBeenCalledWith(detailUnitApiUrl, {});
|
|
@@ -89,7 +99,7 @@ describe('Test UnitDetail', () => {
|
|
|
89
99
|
data: {},
|
|
90
100
|
}));
|
|
91
101
|
await act(async () => {
|
|
92
|
-
await renderer.create(
|
|
102
|
+
await renderer.create(wrapComponent(route, account));
|
|
93
103
|
});
|
|
94
104
|
|
|
95
105
|
axios.get.mockImplementation((url) => {
|
|
@@ -99,7 +109,7 @@ describe('Test UnitDetail', () => {
|
|
|
99
109
|
return { status: 200, data: [] };
|
|
100
110
|
});
|
|
101
111
|
await act(async () => {
|
|
102
|
-
await renderer.create(
|
|
112
|
+
await renderer.create(wrapComponent(route, account));
|
|
103
113
|
});
|
|
104
114
|
|
|
105
115
|
expect(axios.get).toHaveBeenCalledWith(detailUnitApiUrl, {});
|
|
@@ -110,7 +120,7 @@ describe('Test UnitDetail', () => {
|
|
|
110
120
|
throw {};
|
|
111
121
|
});
|
|
112
122
|
await act(async () => {
|
|
113
|
-
await renderer.create(
|
|
123
|
+
await renderer.create(wrapComponent(route, account));
|
|
114
124
|
});
|
|
115
125
|
|
|
116
126
|
expect(axios.get).toHaveBeenCalledWith(detailUnitApiUrl, {});
|
|
@@ -131,7 +141,7 @@ describe('Test UnitDetail', () => {
|
|
|
131
141
|
};
|
|
132
142
|
});
|
|
133
143
|
await act(async () => {
|
|
134
|
-
await renderer.create(
|
|
144
|
+
await renderer.create(wrapComponent(route, account));
|
|
135
145
|
});
|
|
136
146
|
|
|
137
147
|
expect(axios.get).toHaveBeenCalledWith(summaryUnitApiUrl, {});
|
|
@@ -152,7 +162,7 @@ describe('Test UnitDetail', () => {
|
|
|
152
162
|
};
|
|
153
163
|
});
|
|
154
164
|
await act(async () => {
|
|
155
|
-
await renderer.create(
|
|
165
|
+
await renderer.create(wrapComponent(route, account));
|
|
156
166
|
});
|
|
157
167
|
|
|
158
168
|
expect(axios.get).toHaveBeenCalledWith(summaryUnitApiUrl, {});
|
|
@@ -173,7 +183,7 @@ describe('Test UnitDetail', () => {
|
|
|
173
183
|
};
|
|
174
184
|
});
|
|
175
185
|
await act(async () => {
|
|
176
|
-
await renderer.create(
|
|
186
|
+
await renderer.create(wrapComponent(route, account));
|
|
177
187
|
});
|
|
178
188
|
|
|
179
189
|
expect(axios.get).not.toHaveBeenCalledWith(summaryUnitApiUrl, {});
|
|
@@ -181,9 +191,7 @@ describe('Test UnitDetail', () => {
|
|
|
181
191
|
|
|
182
192
|
test('fetch unit detail when refresh', async () => {
|
|
183
193
|
await act(async () => {
|
|
184
|
-
tree = await renderer.create(
|
|
185
|
-
<UnitDetail route={route} account={account} />
|
|
186
|
-
);
|
|
194
|
+
tree = await renderer.create(wrapComponent(route, account));
|
|
187
195
|
});
|
|
188
196
|
axios.get.mockClear();
|
|
189
197
|
const scrollView = tree.root.findByType(ParallaxScrollView);
|
|
@@ -215,10 +223,7 @@ describe('Test UnitDetail', () => {
|
|
|
215
223
|
|
|
216
224
|
await act(async () => {
|
|
217
225
|
renderer.create(
|
|
218
|
-
|
|
219
|
-
route={{ params: { ...route.params, unitData } }}
|
|
220
|
-
account={account}
|
|
221
|
-
/>
|
|
226
|
+
wrapComponent({ params: { ...route.params, unitData } }, account)
|
|
222
227
|
);
|
|
223
228
|
});
|
|
224
229
|
|
|
@@ -236,10 +241,7 @@ describe('Test UnitDetail', () => {
|
|
|
236
241
|
|
|
237
242
|
await act(async () => {
|
|
238
243
|
renderer.create(
|
|
239
|
-
|
|
240
|
-
route={{ params: { ...route.params, unitData } }}
|
|
241
|
-
account={account}
|
|
242
|
-
/>
|
|
244
|
+
wrapComponent({ params: { ...route.params, unitData } }, account)
|
|
243
245
|
);
|
|
244
246
|
});
|
|
245
247
|
const bleManager = BleManager();
|
|
@@ -320,10 +322,7 @@ describe('Test UnitDetail', () => {
|
|
|
320
322
|
|
|
321
323
|
await act(async () => {
|
|
322
324
|
tree = await renderer.create(
|
|
323
|
-
|
|
324
|
-
route={{ params: { ...route.params, unitData } }}
|
|
325
|
-
account={account}
|
|
326
|
-
/>
|
|
325
|
+
wrapComponent({ params: { ...route.params, unitData } }, account)
|
|
327
326
|
);
|
|
328
327
|
});
|
|
329
328
|
const instance = tree.root;
|
|
@@ -346,9 +345,6 @@ describe('Test UnitDetail', () => {
|
|
|
346
345
|
);
|
|
347
346
|
expect(menu).toHaveLength(1);
|
|
348
347
|
expect(menu[0].props.isVisible).toEqual(true);
|
|
349
|
-
|
|
350
|
-
const nav = instance.findAllByType(NavBar);
|
|
351
|
-
expect(nav[0].props.indexStation).toEqual(0);
|
|
352
348
|
});
|
|
353
349
|
|
|
354
350
|
test('when unit has summaries', async () => {
|
|
@@ -356,12 +352,12 @@ describe('Test UnitDetail', () => {
|
|
|
356
352
|
|
|
357
353
|
await act(async () => {
|
|
358
354
|
tree = renderer.create(
|
|
359
|
-
|
|
355
|
+
wrapComponent({ params: { ...route.params } }, account)
|
|
360
356
|
);
|
|
361
357
|
});
|
|
362
358
|
|
|
363
359
|
const summaryViews = tree.root.findAllByType(Summaries);
|
|
364
|
-
expect(summaryViews).toHaveLength(
|
|
360
|
+
expect(summaryViews).toHaveLength(0);
|
|
365
361
|
});
|
|
366
362
|
|
|
367
363
|
test('when unit has google home action then connect to lg thinq', async () => {
|
|
@@ -403,10 +399,7 @@ describe('Test UnitDetail', () => {
|
|
|
403
399
|
jest.useFakeTimers();
|
|
404
400
|
await act(async () => {
|
|
405
401
|
tree = await renderer.create(
|
|
406
|
-
|
|
407
|
-
route={{ params: { ...route.params, unitData } }}
|
|
408
|
-
account={account}
|
|
409
|
-
/>
|
|
402
|
+
wrapComponent({ params: { ...route.params, unitData } }, account)
|
|
410
403
|
);
|
|
411
404
|
});
|
|
412
405
|
await act(async () => {
|
|
@@ -415,4 +408,70 @@ describe('Test UnitDetail', () => {
|
|
|
415
408
|
// TODO Called but can not expect
|
|
416
409
|
// expect(axios.get).toHaveBeenCalledWith(API.IOT.LG.DEVICE_STATUS(2));
|
|
417
410
|
});
|
|
411
|
+
test('render subunit automate', async () => {
|
|
412
|
+
const unitData = {
|
|
413
|
+
stations: [
|
|
414
|
+
{
|
|
415
|
+
isScript: true,
|
|
416
|
+
name: 'Script',
|
|
417
|
+
},
|
|
418
|
+
],
|
|
419
|
+
};
|
|
420
|
+
|
|
421
|
+
await act(async () => {
|
|
422
|
+
tree = await renderer.create(
|
|
423
|
+
wrapComponent({ params: { ...route.params, unitData } }, account)
|
|
424
|
+
);
|
|
425
|
+
});
|
|
426
|
+
const instance = tree.root;
|
|
427
|
+
const automateViews = instance.findAllByType(SubUnitAutomate);
|
|
428
|
+
expect(automateViews).toHaveLength(1);
|
|
429
|
+
});
|
|
430
|
+
test('render subunit camera devices', async () => {
|
|
431
|
+
const unitData = {
|
|
432
|
+
stations: [
|
|
433
|
+
{
|
|
434
|
+
camera_devices: [
|
|
435
|
+
{
|
|
436
|
+
configuration: {
|
|
437
|
+
id: 4,
|
|
438
|
+
name: 'Camera cửa nhà xe',
|
|
439
|
+
uri: 'rtsp://admin:hd543211@/ISAPI/Streaming/Channels/101/',
|
|
440
|
+
preview_uri:
|
|
441
|
+
'rtsp://admin:hd543211@/ISAPI/Streaming/Channels/101/',
|
|
442
|
+
playback: 'rtsp://admin:hd543211@/Streaming/tracks/101/',
|
|
443
|
+
},
|
|
444
|
+
id: 41,
|
|
445
|
+
order: 1,
|
|
446
|
+
template: 'camera',
|
|
447
|
+
type: 'camera',
|
|
448
|
+
},
|
|
449
|
+
],
|
|
450
|
+
},
|
|
451
|
+
],
|
|
452
|
+
};
|
|
453
|
+
|
|
454
|
+
await act(async () => {
|
|
455
|
+
tree = await renderer.create(
|
|
456
|
+
wrapComponent({ params: { ...route.params, unitData } }, account)
|
|
457
|
+
);
|
|
458
|
+
});
|
|
459
|
+
const instance = tree.root;
|
|
460
|
+
const CameraDeviceViews = instance.findAllByType(CameraDevice);
|
|
461
|
+
expect(CameraDeviceViews).toHaveLength(1);
|
|
462
|
+
|
|
463
|
+
const fullCamera = tree.root.findAll(
|
|
464
|
+
(el) =>
|
|
465
|
+
el.props.testID === TESTID.SUB_UNIT_FULL_CAMERA &&
|
|
466
|
+
el.type === TouchableOpacity
|
|
467
|
+
);
|
|
468
|
+
|
|
469
|
+
expect(fullCamera).toHaveLength(1);
|
|
470
|
+
await act(async () => {
|
|
471
|
+
await fullCamera[0].props.onPress();
|
|
472
|
+
});
|
|
473
|
+
const fullView = instance.findAllByType(ModalFullVideo);
|
|
474
|
+
expect(fullView).toHaveLength(1);
|
|
475
|
+
expect(fullView[0].props.isVisible).toEqual(true);
|
|
476
|
+
});
|
|
418
477
|
});
|
|
@@ -3,11 +3,12 @@ import { act, create } from 'react-test-renderer';
|
|
|
3
3
|
import axios from 'axios';
|
|
4
4
|
|
|
5
5
|
import { ToastBottomHelper } from '../../../utils/Utils';
|
|
6
|
-
import { createFormData } from '../../../utils/Apis/axios';
|
|
7
6
|
import API from '../../../configs/API';
|
|
8
7
|
import { TESTID } from '../../../configs/Constants';
|
|
9
8
|
|
|
10
9
|
import ManageUnit from '../ManageUnit';
|
|
10
|
+
import { SCProvider } from '../../../context';
|
|
11
|
+
import { mockSCStore } from '../../../context/mockStore';
|
|
11
12
|
|
|
12
13
|
jest.mock('axios');
|
|
13
14
|
|
|
@@ -23,6 +24,12 @@ jest.mock('../../../hooks/Common', () => {
|
|
|
23
24
|
};
|
|
24
25
|
});
|
|
25
26
|
|
|
27
|
+
const wrapComponent = (route) => (
|
|
28
|
+
<SCProvider initState={mockSCStore({})}>
|
|
29
|
+
<ManageUnit route={route} />
|
|
30
|
+
</SCProvider>
|
|
31
|
+
);
|
|
32
|
+
|
|
26
33
|
describe('Test Manage Unit', () => {
|
|
27
34
|
let tree;
|
|
28
35
|
let route = {
|
|
@@ -71,7 +78,7 @@ describe('Test Manage Unit', () => {
|
|
|
71
78
|
|
|
72
79
|
test('render ManageUnit', async () => {
|
|
73
80
|
await act(async () => {
|
|
74
|
-
tree = create(
|
|
81
|
+
tree = create(wrapComponent(route));
|
|
75
82
|
});
|
|
76
83
|
|
|
77
84
|
const instance = tree.root;
|
|
@@ -92,7 +99,7 @@ describe('Test Manage Unit', () => {
|
|
|
92
99
|
|
|
93
100
|
test('rename Unit', async () => {
|
|
94
101
|
await act(async () => {
|
|
95
|
-
tree = create(
|
|
102
|
+
tree = create(wrapComponent(route));
|
|
96
103
|
});
|
|
97
104
|
|
|
98
105
|
const instance = tree.root;
|
|
@@ -120,20 +127,13 @@ describe('Test Manage Unit', () => {
|
|
|
120
127
|
await bottomButton.props.onPress();
|
|
121
128
|
});
|
|
122
129
|
|
|
123
|
-
|
|
124
|
-
const header = { name: inputRename[0].props.defaultValue };
|
|
125
|
-
|
|
126
|
-
expect(axios.patch).toBeCalledWith(
|
|
127
|
-
API.UNIT.MANAGE_UNIT(1),
|
|
128
|
-
formData,
|
|
129
|
-
header
|
|
130
|
-
);
|
|
130
|
+
expect(axios.patch).toBeCalled();
|
|
131
131
|
});
|
|
132
132
|
|
|
133
133
|
test('remove Unit success', async () => {
|
|
134
134
|
const spyToast = jest.spyOn(ToastBottomHelper, 'success');
|
|
135
135
|
await act(async () => {
|
|
136
|
-
tree = create(
|
|
136
|
+
tree = create(wrapComponent(route));
|
|
137
137
|
});
|
|
138
138
|
|
|
139
139
|
const instance = tree.root;
|
|
@@ -166,7 +166,7 @@ describe('Test Manage Unit', () => {
|
|
|
166
166
|
});
|
|
167
167
|
|
|
168
168
|
expect(axios.delete).toBeCalledWith(API.UNIT.MANAGE_UNIT(1));
|
|
169
|
-
expect(mockedDispatch).toBeCalled();
|
|
169
|
+
expect(mockedDispatch).not.toBeCalled();
|
|
170
170
|
expect(spyToast).toBeCalled();
|
|
171
171
|
spyToast.mockReset();
|
|
172
172
|
spyToast.mockRestore();
|
|
@@ -175,7 +175,7 @@ describe('Test Manage Unit', () => {
|
|
|
175
175
|
test('rename Unit sucess', async () => {
|
|
176
176
|
const spyToast = jest.spyOn(ToastBottomHelper, 'success');
|
|
177
177
|
await act(async () => {
|
|
178
|
-
tree = create(
|
|
178
|
+
tree = create(wrapComponent(route));
|
|
179
179
|
});
|
|
180
180
|
|
|
181
181
|
const instance = tree.root;
|
|
@@ -206,16 +206,9 @@ describe('Test Manage Unit', () => {
|
|
|
206
206
|
await bottomButton.props.onPress();
|
|
207
207
|
});
|
|
208
208
|
|
|
209
|
-
|
|
210
|
-
const header = { name: inputRename[0].props.defaultValue };
|
|
211
|
-
|
|
212
|
-
expect(axios.patch).toBeCalledWith(
|
|
213
|
-
API.UNIT.MANAGE_UNIT(1),
|
|
214
|
-
formData,
|
|
215
|
-
header
|
|
216
|
-
);
|
|
209
|
+
expect(axios.patch).toBeCalled();
|
|
217
210
|
|
|
218
|
-
expect(mockedDispatch).toBeCalled();
|
|
211
|
+
expect(mockedDispatch).not.toBeCalled();
|
|
219
212
|
expect(spyToast).toBeCalled();
|
|
220
213
|
spyToast.mockReset();
|
|
221
214
|
spyToast.mockRestore();
|
|
@@ -7,9 +7,18 @@ import SharedUnit from '../SharedUnit';
|
|
|
7
7
|
import { TESTID } from '../../../../configs/Constants';
|
|
8
8
|
import { API } from '../../../../configs';
|
|
9
9
|
import Routes from '../../../../utils/Route';
|
|
10
|
+
import { SCProvider } from '../../../../context';
|
|
11
|
+
import { mockSCStore } from '../../../../context/mockStore';
|
|
10
12
|
|
|
11
13
|
jest.mock('axios');
|
|
12
14
|
|
|
15
|
+
const wrapComponent = (item, navigation) => (
|
|
16
|
+
<SCProvider initState={mockSCStore({})}>
|
|
17
|
+
<SharedUnit item={item} navigation={navigation} />
|
|
18
|
+
);
|
|
19
|
+
</SCProvider>
|
|
20
|
+
);
|
|
21
|
+
|
|
13
22
|
const mockNavigate = jest.fn();
|
|
14
23
|
jest.mock('@react-navigation/native', () => {
|
|
15
24
|
return {
|
|
@@ -48,7 +57,7 @@ describe('Test SharedUnit', () => {
|
|
|
48
57
|
const navigation = useNavigation();
|
|
49
58
|
|
|
50
59
|
await act(async () => {
|
|
51
|
-
tree = await create(
|
|
60
|
+
tree = await create(wrapComponent(item, navigation));
|
|
52
61
|
});
|
|
53
62
|
const instance = tree.root;
|
|
54
63
|
const touchSharedUnit = instance.find(
|
|
@@ -93,7 +102,7 @@ describe('Test SharedUnit', () => {
|
|
|
93
102
|
item.is_star = true;
|
|
94
103
|
|
|
95
104
|
await act(async () => {
|
|
96
|
-
tree = await create(
|
|
105
|
+
tree = await create(wrapComponent(item, navigation));
|
|
97
106
|
});
|
|
98
107
|
const instance = tree.root;
|
|
99
108
|
const iconRemovePinSharedUnit = instance.find(
|
|
@@ -14,6 +14,8 @@ import RunningDevices from '../components/RunningDevices';
|
|
|
14
14
|
import Temperature from '../components/Temperature';
|
|
15
15
|
import UvIndex from '../components/UvIndex';
|
|
16
16
|
import WaterQuality from '../components/WaterQuality';
|
|
17
|
+
import { SCProvider } from '../../../context';
|
|
18
|
+
import { mockSCStore } from '../../../context/mockStore';
|
|
17
19
|
|
|
18
20
|
jest.mock('axios');
|
|
19
21
|
|
|
@@ -28,6 +30,12 @@ jest.mock('@react-navigation/native', () => {
|
|
|
28
30
|
};
|
|
29
31
|
});
|
|
30
32
|
|
|
33
|
+
const wrapComponent = (route) => (
|
|
34
|
+
<SCProvider initState={mockSCStore({})}>
|
|
35
|
+
<UnitSummary route={route} />
|
|
36
|
+
</SCProvider>
|
|
37
|
+
);
|
|
38
|
+
|
|
31
39
|
describe('Test UnitSummary', () => {
|
|
32
40
|
let route;
|
|
33
41
|
|
|
@@ -50,7 +58,7 @@ describe('Test UnitSummary', () => {
|
|
|
50
58
|
|
|
51
59
|
test('onRefresh', async () => {
|
|
52
60
|
act(() => {
|
|
53
|
-
tree = create(
|
|
61
|
+
tree = create(wrapComponent(route));
|
|
54
62
|
});
|
|
55
63
|
const instance = tree.root;
|
|
56
64
|
const refreshControl = instance.findByType(RefreshControl);
|
|
@@ -74,7 +82,7 @@ describe('Test UnitSummary', () => {
|
|
|
74
82
|
axios.get.mockImplementation(() => Promise.resolve(response));
|
|
75
83
|
|
|
76
84
|
act(() => {
|
|
77
|
-
tree = create(
|
|
85
|
+
tree = create(wrapComponent(route));
|
|
78
86
|
});
|
|
79
87
|
expect(axios.get).toHaveBeenCalled();
|
|
80
88
|
expect(axios.get).toHaveBeenCalledWith(
|
|
@@ -94,7 +102,7 @@ describe('Test UnitSummary', () => {
|
|
|
94
102
|
axios.get.mockImplementation(() => Promise.resolve(response));
|
|
95
103
|
|
|
96
104
|
act(() => {
|
|
97
|
-
tree = create(
|
|
105
|
+
tree = create(wrapComponent(route));
|
|
98
106
|
});
|
|
99
107
|
act(() => {
|
|
100
108
|
jest.runOnlyPendingTimers();
|
|
@@ -149,7 +157,7 @@ describe('Test UnitSummary', () => {
|
|
|
149
157
|
test(`create Unit Summarty Detail ${value}`, async () => {
|
|
150
158
|
route.params.summary.screen = value;
|
|
151
159
|
await act(async () => {
|
|
152
|
-
tree = await create(
|
|
160
|
+
tree = await create(wrapComponent(route));
|
|
153
161
|
});
|
|
154
162
|
const instance = tree.root;
|
|
155
163
|
const UnitSummaryDetail = list_result[index];
|