Выполнить мутацию GraphQL в chaijs - PullRequest
1 голос
/ 09 января 2020

Я тестировал сервер GraphQL с системой js. Я хочу обновить пользователя с некоторыми данными. В моем примере у меня есть функция, которая возвращает некоторые пользовательские данные в объекте.

  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 } }`
          });
  });

Есть ли какой-нибудь инструмент для chai js, который заменяет отправку query в виде строки. Спасибо! PS Извините, если я не совсем точен. Я нуб в кодировании:)

...