I am getting the message statement & function not covered for findIndex() & some branch is not covered as selectedGroup[0].desc. Please guide me how to i write test case in this below code statement function & branch covered.
const updateCampaignGroup = async (id) => {
let newArr = {
id: parseInt(id),
campaignGroupName:
inputState.nameSelectedVal === ''
? selectedGroup[0].campaignGroupName
: inputState.nameSelectedVal,
campaignNumber: selectedCampaigns,
goal:
inputState.goalSelectedVal === ''
? selectedGroup[0].goal
: inputState.goalSelectedVal,
kpi:
inputState.kpiSelectedVal === ''
? selectedGroup[0].kpi
: inputState.kpiSelectedVal,
desc:
inputState.desSelectedVal === ''
? selectedGroup[0].desc
: inputState.desSelectedVal,
dailySpend: selectedCampaigns.length === 0 ? 0 : 450,
createdAt: await new Date().toLocaleDateString('en-gb', {
year: 'numeric',
month: 'short',
day: 'numeric',
}),
createdBy: JSON.parse(localStorage.getItem('okta-token-storage')).idToken
.claims.name,
dailySpendofTotal: selectedCampaigns.length === 0 ? 0 : 12,
};
const index = campaignGroupListing.findIndex((item) => item.id === parseInt(id));
campaignGroupListing.splice(index, 1);
campaignGroupListing.splice(index, 0, newArr);
localStorage.setItem(
'campaignGroupData',
JSON.stringify(campaignGroupListing),
);
await setIsOpen(false);
updateGroupListData(campaignGroupListing);
toast({
duration: 2000,
position: 'top-right',
status: 'success',
title: 'Campaign group has been created successfully',
});
setInputState({
nameSelectedVal: '',
desSelectedVal: '',
goalSelectedVal: '',
kpiSelectedVal: '',
});
};
const saveCampaignGroup = async () => {
campaignGroupData.push({
id: Math.floor(Math.random() * 100),
campaignGroupName: inputState.nameSelectedVal,
campaignNumber: selectedCampaigns,
desc: inputState.desSelectedVal,
createdAt: await new Date().toLocaleDateString('en-gb', {
year: 'numeric',
month: 'short',
day: 'numeric',
}),
createdBy: JSON.parse(localStorage.getItem('okta-token-storage')).idToken
.claims.name,
goal: inputState.goalSelectedVal,
kpi: inputState.kpiSelectedVal,
dailySpend: selectedCampaigns.length === 0 ? '-' : 450,
dailySpendofTotal: selectedCampaigns.length === 0 ? '-' : 12,
});
localStorage.setItem(
'campaignGroupData',
JSON.stringify(campaignGroupData),
);
await setIsOpen(false);
updateGroupListData(campaignGroupData);
toast({
duration: 2000,
position: 'top-right',
status: 'success',
title: 'Campaign group has been created successfully',
});
setInputState({
nameSelectedVal: '',
desSelectedVal: '',
goalSelectedVal: '',
kpiSelectedVal: '',
});
};