Хотя это может и не дать прямого ответа на ваш вопрос, оно должно быть вам полезно.Я работал над тем же фреймворком, на который (как я полагаю) похож ваш, с некоторыми API и некоторыми валидациями пользовательского интерфейса.
У меня был отдельный класс для вызовов API, который возвращал какое-то значение, иногда весь текст ответа.Я позволил себе возможность передавать любое тело, в котором я нуждался, в качестве параметра.
Это пример подхода, который я выбрал.
module.exports = class Endpoints {
addSomethingToUser(bearerToken, userId, JSONbody) {
//Function will preform a POST request and return the status code if successful
//Else if will return the body of the response
let endpoint = 'http://myApp.com:9090/api/users/' + userId;
return new Promise((resolve, reject) => {
let options = {
method: "POST",
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer ' + token,
},
body: JSON.stringify(JSONbody),
};
request(
endpoint,
options ,
function (error, response, body) {
if (!error && (response.statusCode >= 200 && response.statusCode < 300)) {
resolve(response.statusCode);
} else {
console.log('error:', error, response && response.statusCode);
reject(JSON.stringify(response, undefined, 2));
};
}
);
});
};
}
Это называется как
let apiCallsFile = require('../apiCalls/restCalls');
let apiCalls = new apiCallsFile();
it('simple test', async function(){
let requiredBody = {
"NAME": "Test Name",
"GENDER": "MALE",
};
let apiResult = await apiCalls.addSomethingToUser(bearerToken, userId, requiredBody );
expect(apiResult).toBe('201');
}
Ваша проблема связана с фактическими значениями, которые вы используете в Excel.Вы должны попытаться распечатать свои значения, прежде чем отправлять запрос, чтобы убедиться, что они все присутствуют и в том формате, который вы ожидаете.