У меня есть какой-то код в маршруте Express, который общается с AWS Cognito, и у меня возникают проблемы при разработке способа его проверки в тестах.
cognitoExpress.validate(accessTokenFromClient, (err, response) => {
if (err) return res.status(401).json({ error: err });
res.json({ data: `Hello ${response.username}!` });
});
Затем в своем тесте я хочу сказать, cognito Express .validate должен вызываться один раз и возвращать {username: 'test user'}
, чтобы он не попадал в сеть и фактически не вызывал AWS Cognito
it('It should returns 200 with a valid token', async done => {
const { cognitoExpress } = require('../helpers/cognitoExpress');
// I have tried
jest.mock('../helpers/cognitoExpress');
// and this
jest.mock('../helpers/cognitoExpress', () => ({
validate: jest.fn()
}));
const token = 'sfsfdsfsdfsd';
const response = await request.get('/').set('Authorization', token);
expect(cognitoExpress.validate).toHaveBeenCalledWith(token);
expect(response.body).toEqual({ data: 'Hello test user' });
done();
});
Заранее спасибо ....