Я тестировал сервер 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 Извините, если я не совсем точен. Я нуб в кодировании:)