Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 在chaijs中执行GraphQL突变_Node.js_Graphql_Mocha.js_Chai - Fatal编程技术网

Node.js 在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

我正在使用chaijs测试GraphQL服务器。我想用一些数据更新用户。 在我的示例中,有一个函数返回对象中的一些用户数据

  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。这没什么问题,我只是有意思的是,人们还有其他的方法吗:)