@eohjsc/react-native-smart-city 0.3.6 → 0.3.7
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 +15 -36
- package/package.json +5 -9
- package/react-native-smart-city.podspec +0 -1
- package/src/commons/Action/ItemQuickAction.js +4 -16
- package/src/commons/Action/__test__/ItemQuickAction.test.js +6 -11
- package/src/commons/ActionGroup/ColorPickerTemplate.js +24 -37
- package/src/commons/ActionGroup/CurtainButtonTemplate.js +5 -10
- package/src/commons/ActionGroup/OnOffSmartLock/AutoLock/__test__/index.test.js +0 -4
- package/src/commons/ActionGroup/OnOffSmartLock/PasscodeList/ItemPasscode.js +1 -1
- package/src/commons/ActionGroup/OnOffSmartLock/SetupGeneratePasscode/__test__/index.test.js +0 -14
- package/src/commons/ActionGroup/OnOffSmartLock/SetupGeneratePasscode/index.js +0 -1
- package/src/commons/ActionGroup/OnOffTemplate/OnOffButtonTemplate.js +2 -8
- package/src/commons/ActionGroup/OnOffTemplate/OnOffSimpleTemplate.js +10 -10
- package/src/commons/ActionGroup/OnOffTemplate/index.js +2 -3
- package/src/commons/ActionGroup/SliderRangeTemplate.js +2 -6
- package/src/commons/ActionGroup/SmartTiviActionTemplate/SmartTiviActionTemplate.js +3 -7
- package/src/commons/ActionGroup/StatesGridActionTemplate.js +8 -22
- package/src/commons/ActionGroup/TimerActionTemplate.js +3 -11
- package/src/commons/ActionGroup/TwoButtonTemplate/index.js +5 -1
- package/src/commons/ActionGroup/__test__/CurtainButtonTemplate.test.js +4 -53
- package/src/commons/ActionGroup/__test__/OnOffButtonTemplate.test.js +14 -14
- package/src/commons/ActionGroup/__test__/OnOffTemplate.test.js +78 -53
- package/src/commons/ActionGroup/__test__/OneBigButtonTemplate.test.js +20 -36
- package/src/commons/ActionGroup/__test__/TimerActionTemplate.test.js +6 -58
- package/src/commons/ActionGroup/__test__/TwoButtonTemplate.test.js +1 -49
- package/src/commons/ActionGroup/__test__/index.test.js +0 -135
- package/src/commons/Auth/AccountList.js +1 -1
- package/src/commons/Automate/ItemAutomate.js +3 -1
- package/src/commons/Connecting/__test__/Connecting.test.js +2 -19
- package/src/commons/ConnectingProcess/DeviceItem/DeviceItem.js +3 -7
- package/src/commons/ConnectingProcess/DeviceItem/DeviceItemStyles.js +11 -8
- package/src/commons/ConnectingProcess/__test__/Connecting.test.js +3 -136
- package/src/commons/ConnectingProcess/__test__/DeviceItem.test.js +2 -3
- package/src/commons/ConnectingProcess/index.js +26 -76
- package/src/commons/Dashboard/MyPinnedSharedUnit/__test__/MyPinnedSharedUnit.test.js +13 -16
- package/src/commons/Dashboard/MyPinnedSharedUnit/index.js +1 -1
- package/src/commons/Dashboard/MyUnit/__test__/MyUnit.test.js +5 -0
- package/src/commons/Device/ConnectedViewHeader.js +1 -1
- package/src/commons/Device/HistoryChart.js +3 -7
- package/src/commons/Device/ItemDevice.js +12 -19
- package/src/commons/Device/LinearChart.js +0 -15
- package/src/commons/Device/PMSensor/PMSensorIndicatior.js +12 -16
- package/src/commons/Device/PMSensor/PMSensorIndicatorStyles.js +0 -3
- package/src/commons/Device/SonosSpeaker/index.js +1 -1
- package/src/commons/Device/WaterQualitySensor/ListQualityIndicator.js +0 -1
- package/src/commons/Device/WaterQualitySensor/QualityIndicatorsItem.js +2 -7
- package/src/commons/Explore/__test__/CityItem.test.js +54 -33
- package/src/commons/Form/CurrencyInput.js +1 -15
- package/src/commons/Form/TextInputPassword.js +1 -1
- package/src/commons/FullLoading/index.js +1 -2
- package/src/commons/Header/HeaderCustom.js +1 -2
- package/src/commons/HeaderAni/index.js +1 -6
- package/src/commons/HorizontalPicker/index.js +2 -2
- package/src/commons/MediaPlayerDetail/Styles/MediaPlayerDetailStyles.js +6 -0
- package/src/commons/MediaPlayerDetail/index.js +47 -25
- package/src/commons/MenuActionAddnew/index.js +0 -1
- package/src/commons/MenuActionList/index.js +0 -1
- package/src/commons/MenuActionMore/index.js +1 -1
- package/src/commons/PreventAccess/index.js +1 -9
- package/src/commons/Sharing/MemberList.js +2 -10
- package/src/commons/Sharing/WrapHeaderScrollable.js +0 -2
- package/src/commons/Sharing/__test__/DevicePermissionsCheckbox.test.js +1 -0
- package/src/commons/SubUnit/Favorites/index.js +3 -2
- package/src/commons/SubUnit/OneTap/__test__/SubUnitAutomate.test.js +35 -8
- package/src/commons/SubUnit/OneTap/index.js +2 -1
- package/src/commons/SubUnit/ShortDetail.js +9 -25
- package/src/commons/SubUnit/__test__/Item.test.js +1 -0
- package/src/commons/SubUnit/__test__/ShortDetail.test.js +2 -9
- package/src/commons/Unit/SharedUnit.js +0 -1
- package/src/commons/Unit/__test__/SharedUnit.test.js +183 -38
- package/src/commons/UnitSummary/ConfigHistoryChart/index.js +13 -2
- package/src/commons/UnitSummary/ConfigHistoryChart.js +13 -22
- package/src/commons/WheelDateTimePicker/index.js +3 -4
- package/src/configs/API.js +143 -87
- package/src/configs/Constants.js +1 -57
- package/src/configs/SCConfig.js +0 -4
- package/src/context/actionType.ts +0 -8
- package/src/context/mockStore.ts +0 -10
- package/src/context/reducer.ts +2 -38
- package/src/hooks/Common/index.js +0 -2
- package/src/hooks/Common/useGetIdUser.js +5 -1
- package/src/hooks/Common/useSensorsStatus.js +4 -4
- package/src/hooks/useReceiveNotifications.js +5 -9
- package/src/iot/Monitor.js +2 -3
- package/src/iot/RemoteControl/Bluetooth.js +1 -1
- package/src/iot/RemoteControl/GoogleHome.js +49 -75
- package/src/iot/RemoteControl/Internet.js +1 -1
- package/src/iot/RemoteControl/__test__/GoogleHome.test.js +48 -95
- package/src/iot/RemoteControl/__test__/Internet.test.js +7 -18
- package/src/iot/RemoteControl/__test__/LgThinq.test.js +177 -36
- package/src/iot/RemoteControl/index.js +52 -52
- package/src/navigations/UnitStack.js +20 -11
- package/src/screens/AQIGuide/index.js +1 -1
- package/src/screens/ActivityLog/FilterPopup.js +0 -2
- package/src/screens/ActivityLog/__test__/index.test.js +23 -38
- package/src/screens/ActivityLog/hooks/__test__/index.test.js +90 -51
- package/src/screens/ActivityLog/hooks/index.js +1 -1
- package/src/screens/ActivityLog/index.js +2 -2
- package/src/screens/AddCommon/SelectSubUnit.js +0 -1
- package/src/screens/AddCommon/SelectUnit.js +0 -1
- package/src/screens/AddCommon/__test__/SelectSubUnit.test.js +24 -13
- package/src/screens/AddCommon/__test__/SelectUnit.test.js +33 -9
- package/src/screens/AddLocationMaps/index.js +5 -9
- package/src/screens/AddNewAction/SelectAction.js +8 -8
- package/src/screens/AddNewAction/SelectSensorDevices.js +2 -8
- package/src/screens/AddNewAction/SetupSensor.js +7 -7
- package/src/screens/AddNewAction/__test__/SelectAction.test.js +91 -10
- package/src/screens/AddNewAction/__test__/SelectSensorDevices.test.js +26 -40
- package/src/screens/AddNewAutoSmart/__test__/AddNewAutoSmart.test.js +1 -3
- package/src/screens/AddNewAutoSmart/index.js +2 -5
- package/src/screens/AddNewDevice/ConnectingDevices.js +3 -3
- package/src/screens/AddNewDevice/__test__/AddNewDevice.test.js +34 -42
- package/src/screens/AddNewDevice/__test__/ConnectDevices.test.js +4 -0
- package/src/screens/AddNewDevice/__test__/ConnectingDevices.test.js +22 -22
- package/src/screens/AddNewDevice/hooks/ConnectDevices.js +1 -1
- package/src/screens/AddNewDevice/index.js +0 -1
- package/src/screens/AddNewGateway/PlugAndPlay/ConnectWifiWarning.js +17 -23
- package/src/screens/AddNewGateway/PlugAndPlay/GatewayWifiList.js +40 -46
- package/src/screens/AddNewGateway/PlugAndPlay/__test__/GatewayWifiList.test.js +10 -64
- package/src/screens/AddNewGateway/SelectGateway.js +0 -1
- package/src/screens/AddNewGateway/SetupGatewayWifi.js +0 -2
- package/src/screens/AddNewGateway/__test__/AddNewGateway.test.js +6 -4
- package/src/screens/AddNewGateway/__test__/ConnectedGateway.test.js +4 -0
- package/src/screens/AddNewGateway/__test__/ConnectingGateway.test.js +29 -5
- package/src/screens/AddNewGateway/__test__/SelectGateway.test.js +4 -0
- package/src/screens/AddNewGateway/__test__/SetupGateway.test.js +4 -0
- package/src/screens/AddNewGateway/index.js +0 -1
- package/src/screens/AddNewOneTap/__test__/AddNewOneTap.test.js +24 -10
- package/src/screens/AddNewOneTap/index.js +2 -3
- package/src/screens/AllCamera/index.js +4 -4
- package/src/screens/Automate/MultiUnits.js +8 -8
- package/src/screens/Automate/__test__/MultiUnits.test.js +9 -6
- package/src/screens/Automate/__test__/index.test.js +12 -7
- package/src/screens/Automate/index.js +3 -5
- package/src/screens/ConfirmUnitDeletion/__test__/ConfirmUnitDeletion.test.js +8 -36
- package/src/screens/ConfirmUnitDeletion/index.js +1 -7
- package/src/screens/Device/EditDevice/__test__/EditDevice.test.js +22 -71
- package/src/screens/Device/EditDevice/index.js +15 -17
- package/src/screens/Device/__test__/detail.test.js +86 -33
- package/src/screens/Device/components/DetailHistoryChart.js +1 -1
- package/src/screens/Device/components/SensorConnectStatusViewHeader.js +0 -1
- package/src/screens/Device/components/SensorDisplayItem.js +2 -5
- package/src/screens/Device/detail.js +24 -80
- package/src/screens/Device/hooks/useDisconnectedDevice.js +4 -4
- package/src/screens/Device/hooks/useFavoriteDevice.js +9 -5
- package/src/screens/DeviceInfo/__test__/index.test.js +2 -0
- package/src/screens/EditActionsList/index.js +1 -1
- package/src/screens/EmergencyContacts/EmergencyContactsSelectContacts.js +3 -6
- package/src/screens/EmergencyContacts/__test__/EmergencyContactAddNew.test.js +19 -7
- package/src/screens/EmergencyContacts/__test__/EmergencyContactList.test.js +2 -20
- package/src/screens/EmergencyContacts/__test__/EmergencyContactsSelectContacts.test.js +23 -40
- package/src/screens/EmergencySetting/components/DropDownItem.js +2 -2
- package/src/screens/EmergencySetting/index.js +1 -4
- package/src/screens/EnterPassword/__test__/EnterPassword.test.js +25 -41
- package/src/screens/Explore/index.js +0 -2
- package/src/screens/GuestInfo/__test__/index.test.js +41 -14
- package/src/screens/GuestInfo/components/RecurringDetail.js +0 -1
- package/src/screens/GuestInfo/components/TemporaryDetail.js +2 -2
- package/src/screens/HanetCamera/Detail.js +1 -1
- package/src/screens/HanetCamera/__test__/CaptureFaceID.test.js +12 -8
- package/src/screens/HanetCamera/__test__/Detail.test.js +42 -27
- package/src/screens/HanetCamera/__test__/ManageAccess.test.js +5 -8
- package/src/screens/HanetCamera/__test__/MemberInfo.test.js +32 -10
- package/src/screens/HanetCamera/components/RequestFaceIDPopup.js +2 -3
- package/src/screens/HanetCamera/hooks/__test__/useHanetCheckinData.test.js +35 -43
- package/src/screens/HanetCamera/hooks/__test__/useHanetPlaceMembers.test.js +21 -10
- package/src/screens/HanetCamera/hooks/useHanetCheckinData.js +11 -11
- package/src/screens/HanetCamera/hooks/useHanetPlaceMembers.js +11 -11
- package/src/screens/ManageAccess/__test__/ManageAccess.test.js +22 -33
- package/src/screens/ManageAccess/hooks/__test__/useManageAccess.test.js +45 -44
- package/src/screens/ManageAccess/hooks/index.js +4 -7
- package/src/screens/ManageAccess/index.js +1 -2
- package/src/screens/MoveToAnotherSubUnit/__test__/index.test.js +12 -35
- package/src/screens/MoveToAnotherSubUnit/index.js +6 -6
- package/src/screens/Notification/__test__/Notification.test.js +25 -14
- package/src/screens/Notification/__test__/NotificationItem.test.js +7 -8
- package/src/screens/Notification/components/NotificationItem.js +20 -17
- package/src/screens/Notification/index.js +2 -9
- package/src/screens/PlayBackCamera/Timer.js +2 -2
- package/src/screens/PlayBackCamera/__test__/index.test.js +2 -87
- package/src/screens/PlayBackCamera/index.js +6 -22
- package/src/screens/ScanChipQR/__test__/ScanChipQR.test.js +20 -7
- package/src/screens/ScanChipQR/components/QRScan/index.js +0 -1
- package/src/screens/ScanChipQR/hooks/index.js +16 -15
- package/src/screens/ScanSensorQR/__test__/ScanSensorQR.test.js +24 -8
- package/src/screens/ScriptDetail/__test__/index.test.js +86 -17
- package/src/screens/ScriptDetail/index.js +14 -19
- package/src/screens/SelectUnit/__test__/index.test.js +55 -12
- package/src/screens/SelectUnit/index.js +4 -9
- package/src/screens/SetSchedule/index.js +11 -15
- package/src/screens/SharedUnit/__test__/TabHeader.test.js +2 -0
- package/src/screens/SharedUnit/index.js +0 -2
- package/src/screens/Sharing/Components/SensorItem.js +12 -10
- package/src/screens/Sharing/InfoMemberUnit.js +1 -1
- package/src/screens/Sharing/MemberList.js +11 -12
- package/src/screens/Sharing/SelectPermission.js +76 -121
- package/src/screens/Sharing/__test__/InfoMemberUnit.test.js +29 -47
- package/src/screens/Sharing/__test__/MemberList.test.js +127 -13
- package/src/screens/Sharing/__test__/SelectPermission.test.js +38 -28
- package/src/screens/Sharing/__test__/SelectUser.test.js +38 -17
- package/src/screens/Sharing/hooks/index.js +0 -3
- package/src/screens/SmartIr/components/GroupButtonByType/GroupButtonByType.js +2 -3
- package/src/screens/SmartIr/components/SelectBrand.js +1 -1
- package/src/screens/SubUnit/AddSubUnit.js +17 -23
- package/src/screens/SubUnit/Detail.js +2 -1
- package/src/screens/SubUnit/EditSubUnit.js +13 -15
- package/src/screens/SubUnit/ManageSubUnit.js +7 -13
- package/src/screens/SubUnit/__test__/AddSubUnit.test.js +89 -29
- package/src/screens/SubUnit/__test__/Detail.test.js +8 -31
- package/src/screens/SubUnit/__test__/EditSubUnit.test.js +89 -21
- package/src/screens/SubUnit/__test__/ManageSubUnit.test.js +1 -27
- package/src/screens/SubUnit/hooks/__test__/useManageSubUnit.test.js +45 -48
- package/src/screens/SubUnit/hooks/useManageSubUnit.js +7 -7
- package/src/screens/SyncLGDevice/AddLGDevice.js +0 -1
- package/src/screens/SyncLGDevice/__test__/AddLGDevice.test.js +91 -22
- package/src/screens/TDSGuide/index.js +1 -4
- package/src/screens/UVIndexGuide/index.js +1 -1
- package/src/screens/Unit/ChooseLocation.js +14 -7
- package/src/screens/Unit/Detail.js +75 -30
- package/src/screens/Unit/ManageUnit.js +0 -1
- package/src/screens/Unit/SelectAddress.js +23 -45
- package/src/screens/Unit/SmartAccount.js +4 -4
- package/src/screens/Unit/Station/index.js +0 -4
- package/src/screens/Unit/Summaries.js +2 -18
- package/src/screens/Unit/__test__/CheckSendEmail.test.js +29 -24
- package/src/screens/Unit/__test__/ChooseLocation.test.js +14 -27
- package/src/screens/Unit/__test__/Detail.test.js +200 -99
- package/src/screens/Unit/__test__/ManageUnit.test.js +42 -18
- package/src/screens/Unit/__test__/SelectAddress.test.js +49 -159
- package/src/screens/Unit/__test__/SmartAccount.test.js +9 -17
- package/src/screens/Unit/__test__/SmartAccountItem.test.js +1 -0
- package/src/screens/Unit/components/MyUnitDevice/index.js +4 -4
- package/src/screens/Unit/components/SharedUnit/index.js +0 -1
- package/src/screens/Unit/components/__test__/MyUnitDevice.test.js +2 -2
- package/src/screens/Unit/components/__test__/SharedUnit.test.js +34 -31
- package/src/screens/Unit/styles.js +0 -4
- package/src/screens/UnitSummary/__test__/index.test.js +30 -91
- package/src/screens/UnitSummary/components/3PPowerConsumption/__test__/3PPowerConsumption.test.js +2 -31
- package/src/screens/UnitSummary/components/PowerConsumeHistoryChart/__test__/index.test.js +4 -7
- package/src/screens/UnitSummary/components/PowerConsumeHistoryChart/index.js +13 -2
- package/src/screens/UnitSummary/components/PowerConsumption/__test__/ItemPower.test.js +1 -0
- package/src/screens/UnitSummary/components/PowerConsumption/__test__/PowerConsumption.test.js +16 -14
- package/src/screens/UnitSummary/components/RunningDevices/__test__/index.test.js +2 -11
- package/src/screens/UnitSummary/components/RunningDevices/index.js +10 -7
- package/src/screens/UnitSummary/components/Temperature/index.js +4 -4
- package/src/screens/UnitSummary/components/WaterQuality/Item/index.js +2 -10
- package/src/screens/UnitSummary/index.js +1 -15
- package/src/screens/WaterQualityGuide/index.js +1 -1
- package/src/utils/Apis/axios.js +31 -54
- package/src/utils/Converter/time.js +18 -0
- package/src/utils/I18n/translations/en.json +1 -7
- package/src/utils/I18n/translations/vi.json +1 -8
- package/src/utils/Route/index.js +0 -1
- package/src/utils/Utils.js +7 -11
- package/src/commons/ActionGroup/OnOffSmartLock/PasscodeList/__test__/ItemPasscode.test.js +0 -24
- package/src/commons/ActionGroup/__test__/StatesGridActionTemplate.test.js +0 -77
- package/src/commons/Calendar/__test__/Calendar.test.js +0 -33
- package/src/commons/Device/Hanet/ItemHanetDevice.test.js +0 -58
- package/src/commons/FieldTemplate/ChooseUserField/ChooseFieldStyles.js +0 -25
- package/src/commons/FieldTemplate/ChooseUserField/ChoosePopup.js +0 -96
- package/src/commons/FieldTemplate/ChooseUserField/ChoosePopupStyles.js +0 -39
- package/src/commons/FieldTemplate/ChooseUserField/__test__/index.test.js +0 -118
- package/src/commons/FieldTemplate/ChooseUserField/index.js +0 -62
- package/src/commons/FieldTemplate/PasscodeField/PasscodeFieldStyles.js +0 -30
- package/src/commons/FieldTemplate/PasscodeField/__test__/index.test.js +0 -90
- package/src/commons/FieldTemplate/PasscodeField/index.js +0 -43
- package/src/commons/FieldTemplate/ScheduleField/ScheduleFieldStyles.js +0 -13
- package/src/commons/FieldTemplate/ScheduleField/__test__/index.test.js +0 -179
- package/src/commons/FieldTemplate/ScheduleField/index.js +0 -176
- package/src/commons/PreventAccess/__test__/PreventAccess.test.js +0 -62
- package/src/hooks/Common/useGGHomeDeviceConnected.js +0 -16
- package/src/hooks/IoT/__test__/useGGHomeConnection.test.js +0 -198
- package/src/hooks/IoT/__test__/useRemoteControl.test.js +0 -198
- package/src/hooks/IoT/index.js +0 -4
- package/src/hooks/IoT/useGGHomeConnection.js +0 -91
- package/src/hooks/IoT/useRemoteControl.js +0 -79
- package/src/hooks/index.js +0 -4
- package/src/navigations/UnitStackStyles.js +0 -21
- package/src/screens/Sharing/__test__/MemberList2.test.js +0 -80
- package/src/screens/SideMenuDetail/SideMenuDetailStyles.js +0 -28
- package/src/screens/SideMenuDetail/__test__/index.test.js +0 -154
- package/src/screens/SideMenuDetail/index.js +0 -148
- package/src/screens/Unit/__test__/Summaries.test.js +0 -100
- package/src/screens/Unit/components/MyAllUnit/__test__/MyAllUnit.test.js +0 -36
- package/src/screens/Unit/components/MyAllUnit/__test__/index.test.js +0 -54
- package/src/screens/Unit/hook/useUnitConnectRemoteDevices.js +0 -50
- package/src/utils/Permission/common.js +0 -67
- package/src/utils/Setting/Location.js +0 -30
- package/src/utils/__test__/Utils.test.js +0 -12
|
@@ -45,20 +45,10 @@ const GridItem = ({ item, index, length, doAction, sensor, title }) => {
|
|
|
45
45
|
actionName = actionName.replace(/\s+/g, ' ').trim();
|
|
46
46
|
doAction(actionData, null, actionName);
|
|
47
47
|
if (sensor?.is_managed_by_backend) {
|
|
48
|
-
config &&
|
|
49
|
-
sensor.device_type !== 'GOOGLE_HOME' &&
|
|
50
|
-
watchMultiConfigs([config]);
|
|
48
|
+
config && watchMultiConfigs([config]);
|
|
51
49
|
}
|
|
52
50
|
},
|
|
53
|
-
[
|
|
54
|
-
config,
|
|
55
|
-
doAction,
|
|
56
|
-
sensor?.is_managed_by_backend,
|
|
57
|
-
sensor?.name,
|
|
58
|
-
sensor?.device_type,
|
|
59
|
-
text,
|
|
60
|
-
title,
|
|
61
|
-
]
|
|
51
|
+
[config, doAction, sensor?.is_managed_by_backend, sensor?.name, text, title]
|
|
62
52
|
);
|
|
63
53
|
|
|
64
54
|
const iconKit = !!icon_kit_data && icon_kit_data.icon;
|
|
@@ -105,19 +95,15 @@ const GridItem = ({ item, index, length, doAction, sensor, title }) => {
|
|
|
105
95
|
);
|
|
106
96
|
};
|
|
107
97
|
|
|
108
|
-
const StatesGridActionTemplate = ({
|
|
109
|
-
|
|
110
|
-
doAction,
|
|
111
|
-
sensor = {},
|
|
112
|
-
}) => {
|
|
113
|
-
const { configuration = {}, title } = actionGroup;
|
|
98
|
+
const StatesGridActionTemplate = ({ actionGroup, doAction, sensor }) => {
|
|
99
|
+
const { configuration, title } = actionGroup;
|
|
114
100
|
|
|
115
101
|
// eslint-disable-next-line no-unused-vars
|
|
116
102
|
const [configValues, setConfigValues] = useConfigGlobalState('configValues');
|
|
117
103
|
|
|
118
104
|
const options = useMemo(() => {
|
|
119
|
-
return
|
|
120
|
-
if (configValues[option
|
|
105
|
+
return configuration.options.map((option) => {
|
|
106
|
+
if (configValues[option.config] === option.is_on_value) {
|
|
121
107
|
return {
|
|
122
108
|
...option,
|
|
123
109
|
active: true,
|
|
@@ -128,10 +114,10 @@ const StatesGridActionTemplate = ({
|
|
|
128
114
|
}, [configuration, configValues]);
|
|
129
115
|
|
|
130
116
|
useEffect(() => {
|
|
131
|
-
if (sensor?.is_managed_by_backend
|
|
117
|
+
if (sensor?.is_managed_by_backend) {
|
|
132
118
|
watchMultiConfigs(configuration.options.map((option) => option.config));
|
|
133
119
|
}
|
|
134
|
-
}, [sensor.is_managed_by_backend,
|
|
120
|
+
}, [sensor.is_managed_by_backend, configuration.options]);
|
|
135
121
|
|
|
136
122
|
return (
|
|
137
123
|
<View style={styles.wrap}>
|
|
@@ -14,9 +14,9 @@ import { Colors } from '../../configs';
|
|
|
14
14
|
import { useConfigGlobalState } from '../../iot/states';
|
|
15
15
|
import BottomScrollPicker from '../BottomScrollPicker';
|
|
16
16
|
|
|
17
|
-
const TimerActionTemplate = ({ actionGroup
|
|
17
|
+
const TimerActionTemplate = ({ actionGroup, doAction, sensor }) => {
|
|
18
18
|
const t = useTranslations();
|
|
19
|
-
const { configuration
|
|
19
|
+
const { configuration, title } = actionGroup;
|
|
20
20
|
const [showTime, setShowTime] = useState(false);
|
|
21
21
|
const [showHour, setShowHour] = useState(false);
|
|
22
22
|
|
|
@@ -94,7 +94,6 @@ const TimerActionTemplate = ({ actionGroup = {}, doAction, sensor = {} }) => {
|
|
|
94
94
|
if (sensor.is_managed_by_backend) {
|
|
95
95
|
hour !== undefined &&
|
|
96
96
|
minute !== undefined &&
|
|
97
|
-
sensor.device_type !== 'GOOGLE_HOME' &&
|
|
98
97
|
watchMultiConfigs([
|
|
99
98
|
configuration.config_hour,
|
|
100
99
|
configuration.config_minute,
|
|
@@ -107,17 +106,13 @@ const TimerActionTemplate = ({ actionGroup = {}, doAction, sensor = {} }) => {
|
|
|
107
106
|
configuration.config_minute,
|
|
108
107
|
doAction,
|
|
109
108
|
sensor.is_managed_by_backend,
|
|
110
|
-
sensor.device_type,
|
|
111
109
|
]
|
|
112
110
|
);
|
|
113
111
|
|
|
114
112
|
const doActionHour = useCallback(
|
|
115
113
|
(hour) => {
|
|
116
114
|
doAction(configuration.action_data, hour);
|
|
117
|
-
if (
|
|
118
|
-
sensor.is_managed_by_backend &&
|
|
119
|
-
sensor.device_type !== 'GOOGLE_HOME'
|
|
120
|
-
) {
|
|
115
|
+
if (sensor.is_managed_by_backend) {
|
|
121
116
|
hour && watchMultiConfigs([configuration.config_hour]);
|
|
122
117
|
}
|
|
123
118
|
},
|
|
@@ -126,7 +121,6 @@ const TimerActionTemplate = ({ actionGroup = {}, doAction, sensor = {} }) => {
|
|
|
126
121
|
configuration.config_hour,
|
|
127
122
|
doAction,
|
|
128
123
|
sensor.is_managed_by_backend,
|
|
129
|
-
sensor.device_type,
|
|
130
124
|
]
|
|
131
125
|
);
|
|
132
126
|
|
|
@@ -207,8 +201,6 @@ const TimerActionTemplate = ({ actionGroup = {}, doAction, sensor = {} }) => {
|
|
|
207
201
|
onConfirm={onConfirmTime}
|
|
208
202
|
onCancel={onHideTime}
|
|
209
203
|
display="spinner"
|
|
210
|
-
cancelTextIOS={t('cancel')}
|
|
211
|
-
confirmTextIOS={t('confirm')}
|
|
212
204
|
/>
|
|
213
205
|
<BottomScrollPicker
|
|
214
206
|
min={configuration.min}
|
|
@@ -14,6 +14,7 @@ const TwoButtonTemplate = memo(({ actionGroup, doAction, sensor }) => {
|
|
|
14
14
|
const { button1, button2 } = configuration;
|
|
15
15
|
const [isOn, setIsOn] = useState(true);
|
|
16
16
|
const [isStart, setIsStart] = useState(true);
|
|
17
|
+
// eslint-disable-next-line no-unused-vars
|
|
17
18
|
const [configValues] = useConfigGlobalState('configValues');
|
|
18
19
|
const isLight = false;
|
|
19
20
|
|
|
@@ -101,7 +102,10 @@ const TwoButtonTemplate = memo(({ actionGroup, doAction, sensor }) => {
|
|
|
101
102
|
if (sensor?.device_type === DEVICE_TYPE.LG_THINQ) {
|
|
102
103
|
return;
|
|
103
104
|
}
|
|
104
|
-
if (
|
|
105
|
+
if (
|
|
106
|
+
sensor?.is_managed_by_backend &&
|
|
107
|
+
sensor?.device_type !== 'GOOGLE_HOME'
|
|
108
|
+
) {
|
|
105
109
|
watchMultiConfigs([configuration.config]);
|
|
106
110
|
}
|
|
107
111
|
}, [sensor, configuration.config]);
|
|
@@ -1,37 +1,20 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import renderer, { act } from 'react-test-renderer';
|
|
3
|
-
import { TouchableOpacity
|
|
3
|
+
import { TouchableOpacity } from 'react-native';
|
|
4
4
|
|
|
5
5
|
import CurtainButtonTemplate from '../CurtainButtonTemplate';
|
|
6
6
|
import { SCProvider } from '../../../context';
|
|
7
7
|
import { mockSCStore } from '../../../context/mockStore';
|
|
8
8
|
|
|
9
|
-
const
|
|
10
|
-
const mockActionOffData = jest.fn();
|
|
11
|
-
const mockActionOnData = jest.fn();
|
|
12
|
-
const mockCloseActionData = jest.fn();
|
|
13
|
-
|
|
14
|
-
const wrapComponent = (actionGroup = {}, sensor = {}) => (
|
|
9
|
+
const wrapComponent = (actionGroup) => (
|
|
15
10
|
<SCProvider initState={mockSCStore({})}>
|
|
16
|
-
<CurtainButtonTemplate
|
|
17
|
-
actionGroup={actionGroup}
|
|
18
|
-
doAction={mockDoAction}
|
|
19
|
-
sensor={sensor}
|
|
20
|
-
/>
|
|
11
|
+
<CurtainButtonTemplate actionGroup={actionGroup} doAction={jest.fn()} />
|
|
21
12
|
</SCProvider>
|
|
22
13
|
);
|
|
23
14
|
|
|
24
15
|
describe('Test CurtainButtonTemplate', () => {
|
|
25
|
-
const sensor = {
|
|
26
|
-
name: 'test',
|
|
27
|
-
};
|
|
28
16
|
const actionGroup = {
|
|
29
17
|
configuration: {
|
|
30
|
-
text_open: 'open',
|
|
31
|
-
is_display_lock: true,
|
|
32
|
-
action_off_data: mockActionOffData,
|
|
33
|
-
action_on_data: mockActionOnData,
|
|
34
|
-
close_action_data: mockCloseActionData,
|
|
35
18
|
action1: '2b949045-8e03-4c07-a855-7794ade2e69c',
|
|
36
19
|
action1_data: {
|
|
37
20
|
color: '#00979D',
|
|
@@ -78,44 +61,12 @@ describe('Test CurtainButtonTemplate', () => {
|
|
|
78
61
|
|
|
79
62
|
let wrapper;
|
|
80
63
|
|
|
81
|
-
test('render without params', async () => {
|
|
82
|
-
await act(() => {
|
|
83
|
-
wrapper = renderer.create(wrapComponent());
|
|
84
|
-
});
|
|
85
|
-
const instance = wrapper.root;
|
|
86
|
-
const touchableOpacities = instance.findAllByType(TouchableOpacity);
|
|
87
|
-
expect(touchableOpacities.length).toEqual(3);
|
|
88
|
-
});
|
|
89
|
-
|
|
90
64
|
test('render CurtainButtonTemplate', async () => {
|
|
91
65
|
await act(() => {
|
|
92
|
-
wrapper = renderer.create(wrapComponent(actionGroup
|
|
66
|
+
wrapper = renderer.create(wrapComponent(actionGroup));
|
|
93
67
|
});
|
|
94
68
|
const instance = wrapper.root;
|
|
95
69
|
const touchableOpacities = instance.findAllByType(TouchableOpacity);
|
|
96
70
|
expect(touchableOpacities.length).toEqual(3);
|
|
97
|
-
await touchableOpacities[0].props.onPress();
|
|
98
|
-
await touchableOpacities[1].props.onPress();
|
|
99
|
-
await touchableOpacities[2].props.onPress();
|
|
100
|
-
expect(mockDoAction).toBeCalledWith(
|
|
101
|
-
mockCloseActionData,
|
|
102
|
-
null,
|
|
103
|
-
sensor?.name + ' undefined'
|
|
104
|
-
);
|
|
105
|
-
|
|
106
|
-
const Switchs = instance.findAllByType(Switch);
|
|
107
|
-
expect(Switchs).toHaveLength(1);
|
|
108
|
-
await Switchs[0].props.onValueChange();
|
|
109
|
-
expect(mockDoAction).toBeCalledWith(
|
|
110
|
-
mockActionOnData,
|
|
111
|
-
null,
|
|
112
|
-
`${sensor.name} lock`
|
|
113
|
-
);
|
|
114
|
-
await Switchs[0].props.onValueChange();
|
|
115
|
-
expect(mockDoAction).toBeCalledWith(
|
|
116
|
-
mockActionOffData,
|
|
117
|
-
null,
|
|
118
|
-
`${sensor.name} unlock`
|
|
119
|
-
);
|
|
120
71
|
});
|
|
121
72
|
});
|
|
@@ -1,14 +1,6 @@
|
|
|
1
1
|
import React, { useState } from 'react';
|
|
2
2
|
import { act, create } from 'react-test-renderer';
|
|
3
|
-
import
|
|
4
|
-
import { mockSCStore } from '../../../context/mockStore';
|
|
5
|
-
import { SCProvider } from '../../../context';
|
|
6
|
-
|
|
7
|
-
const wrapComponent = (actionGroup, mockDoAction) => (
|
|
8
|
-
<SCProvider initState={mockSCStore({})}>
|
|
9
|
-
<OnOffTemplate actionGroup={actionGroup} doAction={mockDoAction} />
|
|
10
|
-
</SCProvider>
|
|
11
|
-
);
|
|
3
|
+
import Index from '../OnOffTemplate';
|
|
12
4
|
|
|
13
5
|
jest.mock('react', () => ({
|
|
14
6
|
...jest.requireActual('react'),
|
|
@@ -57,15 +49,21 @@ describe('Test OneBigButtonTemplate', () => {
|
|
|
57
49
|
const assertRender = (state, text) => {
|
|
58
50
|
useState.mockImplementationOnce((init) => [state, setState]);
|
|
59
51
|
const mockDoAction = jest.fn();
|
|
60
|
-
|
|
61
52
|
act(() => {
|
|
62
|
-
wrapper = create(
|
|
53
|
+
wrapper = create(
|
|
54
|
+
<Index actionGroup={actionGroup} doAction={mockDoAction} />
|
|
55
|
+
);
|
|
63
56
|
});
|
|
64
57
|
|
|
65
58
|
const renderJson = wrapper.toJSON();
|
|
66
59
|
|
|
67
|
-
expect(renderJson?.
|
|
68
|
-
|
|
60
|
+
expect(renderJson?.children[0].children[0].children[1].children).toEqual(
|
|
61
|
+
undefined
|
|
62
|
+
);
|
|
63
|
+
|
|
64
|
+
expect(
|
|
65
|
+
renderJson?.children[0].children[0].children[1].children
|
|
66
|
+
).not.toEqual([text]);
|
|
69
67
|
};
|
|
70
68
|
|
|
71
69
|
test('render state on', () => {
|
|
@@ -80,7 +78,9 @@ describe('Test OneBigButtonTemplate', () => {
|
|
|
80
78
|
useState.mockImplementationOnce((init) => [state, setState]);
|
|
81
79
|
const mockDoAction = jest.fn();
|
|
82
80
|
act(() => {
|
|
83
|
-
wrapper = create(
|
|
81
|
+
wrapper = create(
|
|
82
|
+
<Index actionGroup={actionGroup} doAction={mockDoAction} />
|
|
83
|
+
);
|
|
84
84
|
});
|
|
85
85
|
|
|
86
86
|
expect(mockDoAction).not.toHaveBeenCalled();
|
|
@@ -1,25 +1,11 @@
|
|
|
1
|
-
/* eslint-disable promise/prefer-await-to-callbacks */
|
|
2
1
|
import { TESTID } from '../../../configs/Constants';
|
|
3
2
|
import { watchMultiConfigs } from '../../../iot/Monitor';
|
|
4
3
|
import React from 'react';
|
|
5
4
|
import { View } from 'react-native';
|
|
6
|
-
import { useSelector } from 'react-redux';
|
|
7
5
|
import { act, create } from 'react-test-renderer';
|
|
8
6
|
import OnOffTemplate from '../OnOffTemplate';
|
|
9
7
|
import OnOffButtonTemplate from '../OnOffTemplate/OnOffButtonTemplate';
|
|
10
8
|
import OnOffSimpleTemplate from '../OnOffTemplate/OnOffSimpleTemplate';
|
|
11
|
-
import { mockSCStore } from '../../../context/mockStore';
|
|
12
|
-
import { SCProvider } from '../../../context';
|
|
13
|
-
|
|
14
|
-
const wrapComponent = (actionGroup, mockDoAction, sensor) => (
|
|
15
|
-
<SCProvider initState={mockSCStore({})}>
|
|
16
|
-
<OnOffTemplate
|
|
17
|
-
actionGroup={actionGroup}
|
|
18
|
-
doAction={mockDoAction}
|
|
19
|
-
sensor={sensor}
|
|
20
|
-
/>
|
|
21
|
-
</SCProvider>
|
|
22
|
-
);
|
|
23
9
|
|
|
24
10
|
jest.mock('../../../iot/Monitor');
|
|
25
11
|
|
|
@@ -27,15 +13,9 @@ jest.mock('../../../iot/states', () => ({
|
|
|
27
13
|
useConfigGlobalState: () => [{ 5: 2 }, null],
|
|
28
14
|
}));
|
|
29
15
|
|
|
30
|
-
jest.mock('react-redux', () => ({
|
|
31
|
-
...jest.requireActual('react-redux'),
|
|
32
|
-
useSelector: jest.fn(),
|
|
33
|
-
}));
|
|
34
|
-
|
|
35
16
|
describe('Test OnOffTemplate', () => {
|
|
17
|
+
let wrapper;
|
|
36
18
|
let actionGroup;
|
|
37
|
-
let tree;
|
|
38
|
-
let sensor;
|
|
39
19
|
|
|
40
20
|
const action_data = {
|
|
41
21
|
color: '#00979D',
|
|
@@ -82,23 +62,20 @@ describe('Test OnOffTemplate', () => {
|
|
|
82
62
|
},
|
|
83
63
|
title: 'Turn on / off',
|
|
84
64
|
};
|
|
85
|
-
|
|
86
|
-
sensor = { name: 'Sensor' };
|
|
87
|
-
|
|
88
|
-
const localState = {
|
|
89
|
-
isOnSwich: false,
|
|
90
|
-
};
|
|
91
|
-
useSelector.mockImplementation((cb) => {
|
|
92
|
-
return cb(localState);
|
|
93
|
-
});
|
|
94
65
|
});
|
|
95
66
|
|
|
96
67
|
test('render with template OnOffSimpleActionTemplate', async () => {
|
|
97
68
|
const mockDoAction = jest.fn();
|
|
98
69
|
await act(async () => {
|
|
99
|
-
|
|
70
|
+
wrapper = await create(
|
|
71
|
+
<OnOffTemplate
|
|
72
|
+
actionGroup={actionGroup}
|
|
73
|
+
doAction={mockDoAction}
|
|
74
|
+
sensor={{}}
|
|
75
|
+
/>
|
|
76
|
+
);
|
|
100
77
|
});
|
|
101
|
-
const instance =
|
|
78
|
+
const instance = wrapper.root;
|
|
102
79
|
const template = instance.findAllByType(OnOffSimpleTemplate);
|
|
103
80
|
expect(template).toHaveLength(1);
|
|
104
81
|
});
|
|
@@ -107,9 +84,15 @@ describe('Test OnOffTemplate', () => {
|
|
|
107
84
|
actionGroup.template = 'on_off_button_action_template';
|
|
108
85
|
const mockDoAction = jest.fn();
|
|
109
86
|
await act(async () => {
|
|
110
|
-
|
|
87
|
+
wrapper = await create(
|
|
88
|
+
<OnOffTemplate
|
|
89
|
+
actionGroup={actionGroup}
|
|
90
|
+
doAction={mockDoAction}
|
|
91
|
+
sensor={{}}
|
|
92
|
+
/>
|
|
93
|
+
);
|
|
111
94
|
});
|
|
112
|
-
const instance =
|
|
95
|
+
const instance = wrapper.root;
|
|
113
96
|
const template = instance.findAllByType(OnOffButtonTemplate);
|
|
114
97
|
expect(template).toHaveLength(0);
|
|
115
98
|
});
|
|
@@ -118,9 +101,15 @@ describe('Test OnOffTemplate', () => {
|
|
|
118
101
|
actionGroup.template = 'wrong_template';
|
|
119
102
|
const mockDoAction = jest.fn();
|
|
120
103
|
await act(async () => {
|
|
121
|
-
|
|
104
|
+
wrapper = await create(
|
|
105
|
+
<OnOffTemplate
|
|
106
|
+
actionGroup={actionGroup}
|
|
107
|
+
doAction={mockDoAction}
|
|
108
|
+
sensor={{}}
|
|
109
|
+
/>
|
|
110
|
+
);
|
|
122
111
|
});
|
|
123
|
-
const instance =
|
|
112
|
+
const instance = wrapper.root;
|
|
124
113
|
|
|
125
114
|
const templateOnOffButton = instance.findAll(
|
|
126
115
|
(el) =>
|
|
@@ -136,20 +125,32 @@ describe('Test OnOffTemplate', () => {
|
|
|
136
125
|
test('render with template OnOffSimpleActionTemplate with is_managed_by_backend', async () => {
|
|
137
126
|
const mockDoAction = jest.fn();
|
|
138
127
|
await act(async () => {
|
|
139
|
-
|
|
128
|
+
wrapper = await create(
|
|
129
|
+
<OnOffTemplate
|
|
130
|
+
actionGroup={actionGroup}
|
|
131
|
+
doAction={mockDoAction}
|
|
132
|
+
sensor={{ is_managed_by_backend: true }}
|
|
133
|
+
/>
|
|
134
|
+
);
|
|
140
135
|
});
|
|
141
|
-
const instance =
|
|
136
|
+
const instance = wrapper.root;
|
|
142
137
|
const template = instance.findAllByType(OnOffSimpleTemplate);
|
|
143
138
|
expect(template).toHaveLength(1);
|
|
144
|
-
expect(watchMultiConfigs).toBeCalledTimes(
|
|
139
|
+
expect(watchMultiConfigs).toBeCalledTimes(1);
|
|
145
140
|
});
|
|
146
141
|
|
|
147
142
|
test('template OnOffSimpleActionTemplate doAction with is_on_value, match configValue', async () => {
|
|
148
143
|
const mockDoAction = jest.fn();
|
|
149
144
|
await act(async () => {
|
|
150
|
-
|
|
145
|
+
wrapper = await create(
|
|
146
|
+
<OnOffTemplate
|
|
147
|
+
actionGroup={actionGroup}
|
|
148
|
+
doAction={mockDoAction}
|
|
149
|
+
sensor={{ name: 'Sensor name' }}
|
|
150
|
+
/>
|
|
151
|
+
);
|
|
151
152
|
});
|
|
152
|
-
const instance =
|
|
153
|
+
const instance = wrapper.root;
|
|
153
154
|
const template = instance.findByType(OnOffSimpleTemplate);
|
|
154
155
|
expect(template.props.isOn).toEqual(true);
|
|
155
156
|
|
|
@@ -159,7 +160,7 @@ describe('Test OnOffTemplate', () => {
|
|
|
159
160
|
expect(mockDoAction).toHaveBeenCalledWith(
|
|
160
161
|
action_off_data,
|
|
161
162
|
null,
|
|
162
|
-
'Sensor turn on / off off'
|
|
163
|
+
'Sensor name turn on / off off'
|
|
163
164
|
);
|
|
164
165
|
expect(watchMultiConfigs).toBeCalledTimes(0);
|
|
165
166
|
});
|
|
@@ -168,9 +169,15 @@ describe('Test OnOffTemplate', () => {
|
|
|
168
169
|
actionGroup.configuration.is_on_value = [1];
|
|
169
170
|
const mockDoAction = jest.fn();
|
|
170
171
|
await act(async () => {
|
|
171
|
-
|
|
172
|
+
wrapper = await create(
|
|
173
|
+
<OnOffTemplate
|
|
174
|
+
actionGroup={actionGroup}
|
|
175
|
+
doAction={mockDoAction}
|
|
176
|
+
sensor={{ name: 'Sensor name' }}
|
|
177
|
+
/>
|
|
178
|
+
);
|
|
172
179
|
});
|
|
173
|
-
const instance =
|
|
180
|
+
const instance = wrapper.root;
|
|
174
181
|
const template = instance.findByType(OnOffSimpleTemplate);
|
|
175
182
|
expect(template.props.isOn).toEqual(false);
|
|
176
183
|
|
|
@@ -180,16 +187,22 @@ describe('Test OnOffTemplate', () => {
|
|
|
180
187
|
expect(mockDoAction).toHaveBeenCalledWith(
|
|
181
188
|
action_on_data,
|
|
182
189
|
null,
|
|
183
|
-
'Sensor turn on / off on'
|
|
190
|
+
'Sensor name turn on / off on'
|
|
184
191
|
);
|
|
185
192
|
});
|
|
186
193
|
|
|
187
194
|
test('template OnOffSimpleActionTemplate doAction with is_on_value and is_managed_by_backend', async () => {
|
|
188
195
|
const mockDoAction = jest.fn();
|
|
189
196
|
await act(async () => {
|
|
190
|
-
|
|
197
|
+
wrapper = await create(
|
|
198
|
+
<OnOffTemplate
|
|
199
|
+
actionGroup={actionGroup}
|
|
200
|
+
doAction={mockDoAction}
|
|
201
|
+
sensor={{ name: 'Sensor name', is_managed_by_backend: true }}
|
|
202
|
+
/>
|
|
203
|
+
);
|
|
191
204
|
});
|
|
192
|
-
const instance =
|
|
205
|
+
const instance = wrapper.root;
|
|
193
206
|
const template = instance.findByType(OnOffSimpleTemplate);
|
|
194
207
|
expect(template.props.isOn).toEqual(true);
|
|
195
208
|
|
|
@@ -199,9 +212,9 @@ describe('Test OnOffTemplate', () => {
|
|
|
199
212
|
expect(mockDoAction).toHaveBeenCalledWith(
|
|
200
213
|
action_off_data,
|
|
201
214
|
null,
|
|
202
|
-
'Sensor turn on / off off'
|
|
215
|
+
'Sensor name turn on / off off'
|
|
203
216
|
);
|
|
204
|
-
expect(watchMultiConfigs).toBeCalledTimes(
|
|
217
|
+
expect(watchMultiConfigs).toBeCalledTimes(2);
|
|
205
218
|
});
|
|
206
219
|
|
|
207
220
|
test('render with template OnOffSimpleActionTemplate with just action_data', async () => {
|
|
@@ -217,9 +230,15 @@ describe('Test OnOffTemplate', () => {
|
|
|
217
230
|
};
|
|
218
231
|
const mockDoAction = jest.fn();
|
|
219
232
|
await act(async () => {
|
|
220
|
-
|
|
233
|
+
wrapper = await create(
|
|
234
|
+
<OnOffTemplate
|
|
235
|
+
actionGroup={actionGroup}
|
|
236
|
+
doAction={mockDoAction}
|
|
237
|
+
sensor={{ is_managed_by_backend: true }}
|
|
238
|
+
/>
|
|
239
|
+
);
|
|
221
240
|
});
|
|
222
|
-
const instance =
|
|
241
|
+
const instance = wrapper.root;
|
|
223
242
|
const template = instance.findAllByType(OnOffSimpleTemplate);
|
|
224
243
|
expect(template).toHaveLength(1);
|
|
225
244
|
expect(template[0].props.disabled).toBeFalsy();
|
|
@@ -242,9 +261,15 @@ describe('Test OnOffTemplate', () => {
|
|
|
242
261
|
};
|
|
243
262
|
const mockDoAction = jest.fn();
|
|
244
263
|
await act(async () => {
|
|
245
|
-
|
|
264
|
+
wrapper = await create(
|
|
265
|
+
<OnOffTemplate
|
|
266
|
+
actionGroup={actionGroup}
|
|
267
|
+
doAction={mockDoAction}
|
|
268
|
+
sensor={{ is_managed_by_backend: true }}
|
|
269
|
+
/>
|
|
270
|
+
);
|
|
246
271
|
});
|
|
247
|
-
const instance =
|
|
272
|
+
const instance = wrapper.root;
|
|
248
273
|
const template = instance.findAllByType(OnOffSimpleTemplate);
|
|
249
274
|
expect(template).toHaveLength(1);
|
|
250
275
|
expect(template[0].props.disabled).toBeTruthy();
|
|
@@ -1,27 +1,8 @@
|
|
|
1
|
-
/* eslint-disable promise/prefer-await-to-callbacks */
|
|
2
1
|
import React from 'react';
|
|
3
2
|
import { create, act } from 'react-test-renderer';
|
|
4
3
|
import { TouchableOpacity } from 'react-native';
|
|
5
|
-
import { useSelector } from 'react-redux';
|
|
6
4
|
|
|
7
5
|
import OneBigButtonTemplate from '../OneBigButtonTemplate';
|
|
8
|
-
import { mockSCStore } from '../../../context/mockStore';
|
|
9
|
-
import { SCProvider } from '../../../context';
|
|
10
|
-
|
|
11
|
-
const wrapComponent = (actionGroup, mockDoAction, sensor) => (
|
|
12
|
-
<SCProvider initState={mockSCStore({})}>
|
|
13
|
-
<OneBigButtonTemplate
|
|
14
|
-
actionGroup={actionGroup}
|
|
15
|
-
doAction={mockDoAction}
|
|
16
|
-
sensor={sensor}
|
|
17
|
-
/>
|
|
18
|
-
</SCProvider>
|
|
19
|
-
);
|
|
20
|
-
|
|
21
|
-
jest.mock('react-redux', () => ({
|
|
22
|
-
...jest.requireActual('react-redux'),
|
|
23
|
-
useSelector: jest.fn(),
|
|
24
|
-
}));
|
|
25
6
|
|
|
26
7
|
describe('Test OneBigButtonTemplate', () => {
|
|
27
8
|
const action_data = {
|
|
@@ -42,25 +23,24 @@ describe('Test OneBigButtonTemplate', () => {
|
|
|
42
23
|
text: 'UP',
|
|
43
24
|
},
|
|
44
25
|
};
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
const localState = {
|
|
50
|
-
isOnSwich: false,
|
|
51
|
-
};
|
|
52
|
-
useSelector.mockImplementation((cb) => {
|
|
53
|
-
return cb(localState);
|
|
54
|
-
});
|
|
55
|
-
sensor = { name: 'Sensor' };
|
|
56
|
-
});
|
|
26
|
+
const sensor = {
|
|
27
|
+
name: 'Sensor name',
|
|
28
|
+
};
|
|
29
|
+
let wrapper;
|
|
57
30
|
|
|
58
|
-
test('render OneBigButtonTemplate',
|
|
31
|
+
test('render OneBigButtonTemplate', () => {
|
|
59
32
|
const mockDoAction = jest.fn();
|
|
60
|
-
|
|
61
|
-
|
|
33
|
+
act(() => {
|
|
34
|
+
wrapper = create(
|
|
35
|
+
<OneBigButtonTemplate
|
|
36
|
+
actionGroup={actionGroup}
|
|
37
|
+
doAction={mockDoAction}
|
|
38
|
+
sensor={sensor}
|
|
39
|
+
/>
|
|
40
|
+
);
|
|
62
41
|
});
|
|
63
|
-
|
|
42
|
+
|
|
43
|
+
const instance = wrapper.root;
|
|
64
44
|
const buttons = instance.findAllByType(TouchableOpacity);
|
|
65
45
|
expect(buttons.length).toEqual(1);
|
|
66
46
|
|
|
@@ -69,6 +49,10 @@ describe('Test OneBigButtonTemplate', () => {
|
|
|
69
49
|
});
|
|
70
50
|
|
|
71
51
|
expect(mockDoAction).toHaveBeenCalledTimes(1);
|
|
72
|
-
expect(mockDoAction).toHaveBeenCalledWith(
|
|
52
|
+
expect(mockDoAction).toHaveBeenCalledWith(
|
|
53
|
+
action_data,
|
|
54
|
+
null,
|
|
55
|
+
'Sensor name up'
|
|
56
|
+
);
|
|
73
57
|
});
|
|
74
58
|
});
|