У меня есть «закрытая» функция, которая оборачивает общие функции для запроса API, и у меня есть куча «открытых» функций для запуска фактических запросов с объектом конфигурации запроса (см. Ниже в файле requestUploadStatementFile
).
Я пытаюсь протестировать эти публичные функции, но я не уверен, как имитировать приватную функцию, используя Jest, в данном случае requestWithAutoTokenRenew
function.
/**
* An API wrapper which auto renew JTW once it get expired
*
* @param {Object} requestConfig Request configuration object
* @returns {Promise}
*/
const requestWithAutoTokenRenew = async requestConfig => {
const session = await doGetSession();
const sessionToken = session.idToken.jwtToken;
const { url, method, params, payload } = requestConfig;
const requestObj = {
url,
method,
headers: {
Accept: "application/json",
Authorization: sessionToken,
"Content-Type": "application/json"
},
data: payload,
...params
};
return axios.request(requestObj).then(response => response.data);
};
/**
* Upload bank or credit card statement for parsing
*
* @param {Object} file Statement PDF file needs to be parsed
*/
export const requestUploadStatementFile = file => {
const requestConfig = {
url: URL_UPLOAD,
method: "POST",
payload: file
};
return requestWithAutoTokenRenew(requestConfig);
};