Я хочу смоделировать данные, возвращаемые из декодирования пакета jsonwebtoken NPM. Я думаю, что я также правильно издевался, но это дает null независимо от того, что я пытаюсь.
Это часть, которую я хочу проверить:
Это код, который я написал:
import jwt from 'jsonwebtoken'
jest.mock('jsonwebtoken')
// const { decode } = jwt
jest.mock('jsonwebtoken', () => ({
...jest.requireActual('jsonwebtoken'), // import and retain the original functionalities
decode: jest.fn().mockReturnValue({ aud: 'bar', data: { seller_code: 343 } }), // overwrite verify
}));
// decode.mockReturnValue({ aud: 'bar', data: { seller_code: 343 } })
// const decode = jest.spyOn(jwt, 'decode');
// decode.mockImplementation(() => () => ({ verified: 'true' }));
describe.only('EncryptData', () => {
it('Should extract token', () => {
process.env.REACT_APP_DEVELOPER = "Random value2";
const res = TokenExtractor({ headers: { authorization: 'Bearer Token33432' } }, undefined, () => { })
console.info(res)
})
})
Я не понял тебя полностью. Я хочу, чтобы decodedData контролировался, поэтому я хочу издеваться над результатом декодирования.
Это контролируется, потому что это чистая функция заголовка, который вы передаете. Вместо Bearer Token33432 передать заголовок с токеном, который на самом деле становится { aud: 'bar', data: { seller_code: 343 } }, тогда вам не нужно имитировать jsonwebtoken (и также можно проверить, что вы на самом деле взаимодействует с ним правильно).
Хорошо, я понял вашу точку зрения, и она также работает нормально. Спасибо за ответ.





На него ответил @jonrsharpe.
Не нужно издеваться, мне просто нужно было передать токен, который в конечном итоге даст мне издевательский результат.
Попробуйте что-то вроде:
const token = jwt.sign({
aud: 'Random value2',
data: { seller_code: 343 }
},
'secret',
{ expiresIn: '1h' }
);
Почему ты вообще хочешь издеваться над этим? Вы управляете значением токена, так как это входные данные для функции, поэтому вы можете сделать тот, который фактически декодирует значение, которое вы пытаетесь получить для возврата тестового двойника.