如何在 apollo 客户端中模拟联合类型
How to mock a union type in apollo client
我想使用模拟提供程序测试 apollo 客户端,它可以通过简单的查询和更改正常工作。但是对于寄存器突变,我有类型的响应
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":""}}
其实我这边有个小错误。我不能通过
{
email: 'test',
username: 'test',
password: 'test',
}
此对象作为变量中的数据,因为组件期望所有三个都为空字符串。所以通过这个
{
email: '',
username: '',
password: '',
}
帮我解决了这个问题。
请参阅此 github issue 以获取更多详细信息和示例
我想使用模拟提供程序测试 apollo 客户端,它可以通过简单的查询和更改正常工作。但是对于寄存器突变,我有类型的响应
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":""}}
其实我这边有个小错误。我不能通过
{
email: 'test',
username: 'test',
password: 'test',
}
此对象作为变量中的数据,因为组件期望所有三个都为空字符串。所以通过这个
{
email: '',
username: '',
password: '',
}
帮我解决了这个问题。 请参阅此 github issue 以获取更多详细信息和示例