angular expert to improve test coverage by writing unit tests

Job ID: 35237190

Budget: $30 – $250 USD

angular expert to improve test coverage by writing unit tests

Sample Current coverage as below. Need to improve to 80%

=============================== Coverage summary ===============================
Statements : 78.94% ( 105/133 )
Branches : 30.76% ( 8/26 )
Functions : 42.3% ( 11/26 )
Lines : 74.77% ( 83/111 )
Jest: "global" coverage threshold for statements (80%) not met: 78.94%
Jest: "global" coverage threshold for branches (80%) not met: 30.76%
Jest: "global" coverage threshold for lines (80%) not met: 74.77%
Jest: "global" coverage threshold for functions (80%) not met: 42.3%

===============================================================================

Sample code to unit test:

export class ContactInfoSelectionPageComponent implements OnInit {
constructor(private _facade: CustomerPreferencesFacade) {}
emailSelectedItem: SelectedInputItem;
phoneNumberSelectedItem: SelectedInputItem;

phoneNumbers$ = this._facade.phoneNumbers$.pipe(
map((data) => {
const placeHolderText = 'Other Mobile Number';
const list: CardSelectorItem[] =
data?.map((el, index) => {
const phoneNumberCard = {
id: JSON.stringify(index),
value: el.phoneNumber,
title: el.phoneNumber,
};
Iif (el.primaryPhone) {
this.emailSelectedItem = {
value: phoneNumberCard.id,
text: phoneNumberCard.value,
};
}
return phoneNumberCard;
}) || [];
list.push({
value: JSON.stringify(list.length),
title: placeHolderText,
isFreeText: true,
freeTextPlaceholder: placeHolderText,
});

return list;
}),
);

emails$ = this._facade.emails$.pipe(
map((data) => {
const placeHolderText = 'Other Email Address';
const list: CardSelectorItem[] =
data?.map((el) => {
const emailCard = {
value: el.emailAddress,
text: el.emailAddress,
};
Iif (el.securityEmail) {
this.phoneNumberSelectedItem = {
value: emailCard.value,
text: emailCard.text,
};
}
return emailCard;
}) || [];
list.push({
value: JSON.stringify(list.length),
title: placeHolderText,
isFreeText: true,
freeTextPlaceholder: placeHolderText,
});

return list;
}),
);

ngOnInit() {
this._facade.getUserContactInfo();
}

onEmailChange({ value }: CardSelectorItem) {
this.emailSelectedItem = { value };
}

onPhoneNumberChange({ value }: CardSelectorItem) {
this.phoneNumberSelectedItem = { value };
}
}

Deliverables
Code coverage improvement to 80%
Related categories: JavaScript AngularJS