#reactjs #unit-testing #mocking #apollo-client #react-testing-library
#reactjs #модульное тестирование #издевательство #apollo-client #react-testing-library
Вопрос:
Я хочу протестировать клиент apollo с помощью mock provider, он корректно работает с простым запросом и мутацией. Но для изменения регистра у меня есть ответ типа
register(data: $data) {
... on Error {
error {
path
message
}
}
... on RegisterSuccess {
user {
email
_id
username
}
}
}
Я издевался над этим ответом в клиенте apollo следующим образом
const mocks = [
{
request: {
query: RegisterMutation,
variables: {
data: {
email: 'test',
username: 'test',
password: 'test',
},
},
},
result: {
data: {
register: {
error: [
{
path: 'email',
message: 'Email already in use',
},
],
},
},
},
},
];
Но это не работает и выдает ошибку, которая,
Warning: An unhandled error was caught from submitForm() Error: No more mocked responses for the query: mutation Register($data: RegisterInput!) {
register(data: $data) {
... on Error {
error {
path
message
}
}
... on RegisterSuccess {
user {
email
_id
username
}
}
}
}
, variables: {"data":{"email":"","username":"","password":""}}
Ответ №1:
На самом деле, с моей стороны есть небольшая ошибка. Я не могу передать
{
email: 'test',
username: 'test',
password: 'test',
}
этот объект как данные в переменных, потому что компонент ожидает все три как пустую строку. Итак, передавая это
{
email: '',
username: '',
password: '',
}
решил проблему для меня.
обратитесь к этой проблеме на github для получения более подробной информации и примера