Node.js 在chaijs中执行GraphQL突变
我正在使用chaijs测试GraphQL服务器。我想用一些数据更新用户。 在我的示例中,有一个函数返回对象中的一些用户数据Node.js 在chaijs中执行GraphQL突变,node.js,graphql,mocha.js,chai,Node.js,Graphql,Mocha.js,Chai,我正在使用chaijs测试GraphQL服务器。我想用一些数据更新用户。 在我的示例中,有一个函数返回对象中的一些用户数据 updateUser: () => ({ firstName: 'testFirstName', lastName: 'testLastName', patronymic: 'testPatronymic', phone: '79781234567', timezone: 'Europe/Moscow', ratin
updateUser: () => ({
firstName: 'testFirstName',
lastName: 'testLastName',
patronymic: 'testPatronymic',
phone: '79781234567',
timezone: 'Europe/Moscow',
ratingSettings: {performer: true, chiefEngineer: true, engineer: true, customer: true}
})
然后我将其转换为对GraphQL有效的字符串:
getMutationObject: data => Object.keys(data).map(key => `${key}: "${data[key]}"`).join(' ')
const userData = getMutationObject(updateUser());
我得到的结果是:
firstName: "testFirstName" lastName: "testLastName" patronymic: "testPatronymic" phone: "79781234567" timezone: "Europe/Moscow" ratingSettings: "{"performer":true,"chiefEngineer":true,"engineer":true,"customer":true}"
我做了一个测试:
it('Updates Profile data', async () => {
const res = await graphqlRequest.post('')
.set({
'Content-Type': 'application/json',
'Authorization': `Bearer ${user.accessToken}`,
})
.send({
query: `mutation update_user {
update_user(
where: { id: {_eq: ${user.id} } },
_set: { ${userData} }
)
{ affected_rows } }`
});
});
是否有任何用于chaijs的工具可以将发送查询
替换为字符串。谢谢
另外,如果我不太准确的话,很抱歉。我是一个编码高手:)嗨。好问题,但您使用的是什么graphql客户端?如果您在graphql中使用变量,那么应该能够直接传入json对象。我只是发送了一个由chai提供的HTTP请求。js您是否使用
chai HTTP
?将query
作为字符串发送有什么问题?是的,http。这没有问题,我只是有意思的是,有没有其他的方法,人们使用:)嗨。好问题,但您使用的是什么graphql客户端?如果您在graphql中使用变量,那么应该能够直接传入json对象。我只是发送了一个由chai提供的HTTP请求。js您是否使用chai HTTP
?将query
作为字符串发送有什么问题?是的,http。这没什么问题,我只是有意思的是,人们还有其他的方法吗:)