Мой компонентactjs под названием Alerts сортирует json-данные по дате / имени, компонент работает, но не выполняет модульный тест, который он ломает в служебной функции, это проблема.
Часть компонента Alerts использует частьслужебной функции с именем createAlertsWithName.Все, что он делает, это «объединяет» 2 массива в 1 (потому что массив предупреждений не содержит имени, и мне нужно это отсортировать):
export const createAlertsWithName = (alerts,applicants) =>{
return alerts.map(a =>({
...a,
name:(a.applicants
.map(id =>getApplicantByid(id,applicants))
.find(applicant => applicant.isPrimaryApplicant) ||{lastName:''}).lastName
}))
}
Когда я запускаю 'npm test', я получаю следующую ошибкусообщение:
Alerts › should render sorted data
TypeError: Cannot read property 'isPrimaryApplicant' of undefined
6 | name:(a.applicants
7 | .map(id =>getApplicantByid(id,applicants))
> 8 | .find(applicant => applicant.isPrimaryApplicant) ||{lastName:''}).lastName
| ^
9 | }))
10 | }
11 |
at isPrimaryApplicant (src/utility.js:8:38)
at Array.find (<anonymous>)
at find (src/utility.js:8:10)
at Array.map (<anonymous>)
at map (src/utility.js:4:19)
at createAlertsWithName (src/utility.js:17:12)
at Alerts.render (src/Alerts.js:12:11)
Это кажется странным, потому что я проверил свойство 'name' без оператора find следующим образом:
name:(a.applicants
.map(id =>getApplicantByid(id,applicants))
Вывод будет:
applicants: (2) ["000001262", "000001263"]
assignedDateTime: "2018-10-25T09:25:00Z"
createdDateTime: "2019-10-24T09:25:00Z"
dueDateTime: "2019-10-25T09:25:00Z"
id: "19d0da63-dfd0-4c00-a13a-cc822fc81297"
name: (2) [{…}, {…}]
subject: "What a nice day"
submissionId: "SUB200620150004197"
__proto__: Object
1:
applicants: ["000001201"]
assignedDateTime: "2018-10-25T09:25:00Z"
createdDateTime: "2018-10-24T09:25:00Z"
dueDateTime: "2018-10-25T09:25:00Z"
id: "19d0da63-dfd0-4c00-a13a-cc822fc81201"
name: [{…}]
subject: "Hello"
submissionId: "SUB200620150004201"
И это не возвращает неопределенное имя, насколько я вижу.Так почему же я получаю сообщение об ошибке «Cannot read property» isPrimaryApplicant с неопределенной ошибкой?