Я делаю вызов API, который возвращает массив объектов. Затем я отображаю эти объекты на дочерний компонент. Моя идея, как проверить это, состоит в том, чтобы смоделировать вызов API с помощью Jest и проверить, равно ли количество отображаемых дочерних компонентов количеству объектов. На самом деле я не уверен, что мне нужно издеваться над вызовом API и думаю, что может быть проще просто объявить массив и использовать его.
Вот пример массива, который я использовал бы для возврата моего вызова API.
let organizationRoles = [
{name : "2nd Project Manager", assigned : false},
{name : "Executive Sponser", assigned: false},
{name : "CFO or Finance Contact", assigned: false},
{name : "OI&T Contact", assigned: false},
{name : "Payroll Contact", assigned: false},
{name : "HR Contact", assigned: false}
]
и вот тест, который я пытаюсь запустить.
it('renders the appropriate number of cards', () => {
const wrapper = mount(<AssignRoles />);
const cardHolder = wrapper.find('#assign-roles-roles-page');
expect(cardHolder.children()).toHaveLength(organizationRoles.length)
})
Моя главная проблема в том, что я не выяснил, куда вводить массив.
Вот код, который я хочу протестировать из моего AssignRoles
компонента.
<div className={styles.rolesPage} id="assign-roles-roles-page">
{organizationRoles.map((roles, key)=> {
return(<AssignRolesCard name={roles.name} assignee={roles.assignee} id={key} handleFormOpen={handleFormOpen}/>)
})}
</div>
В ответ на мой запрос API:
axios
.get(URL, config)
.then(response => {
const organizationRoles = response.data;
})
.catch(error => {
if (error.response.status === 401 && token) {
this.renewToken();
}
});
Я все еще довольно новичок в Jestи хочу понять, как лучше использовать макеты в моем тестировании.