Jest тестирование регистрации пользователя при взломе пароля
Я пишу тест для службы, которая регистрирует пользователей в приложении (это тестовое приложение, поэтому безопасность не является проблемой:)), и я делаю хеширование пароля пользователя и т. Д. В FE.
Использование Jest + Enzyme в качестве моей инфраструктуры тестирования.
Вот тест:
test('Registering users work as expected', async () => {
let user = {username: 'jestUser', password: 'jestUser'};
await expect(UserService._registerNewUser(user)).resolves.toEqual({
validated: true,
reason: 'You have successfully registered !',
user: {
password: '$2a$10$Hwzm25j2w47Du6yPDslB7OnY/YVurYjm9paMZg8MeaN34bO2FkHmS',
username: 'jestUser'
}
});
})
Проблема решена, пароль всегда отличается из-за солей + bcrypt, поэтому мои тесты не пройдены.
Что было бы лучшим способом проверить это? Есть ли способ проверить возвращаемый объект и исключить пароль из проверки? Или есть какая-то проверка длины?
Спасибо,
1 ответ
Хорошо, так что после некоторого времени и чтения документации мне удалось решить проблему:)
Правильная тестовая функция выглядит так:
test('Registering users work as expected', async () => {
let user = {username: 'jestUser', password: 'jestUser'};
await expect(UserService._registerNewUser(user)).resolves.toEqual({
validated: true,
reason: 'You have successfully registered !',
user: {
password: expect.anything(),
username: 'jestUser'
}
});
})
Вы можете сделать "пароль", чтобы ожидать чего-либо, если его значение меняется.
Надеюсь, что это сэкономит время для кого-то еще в будущем:)