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'
        }
    });
})

Вы можете сделать "пароль", чтобы ожидать чего-либо, если его значение меняется.

Надеюсь, что это сэкономит время для кого-то еще в будущем:)

Другие вопросы по тегам