mirror of
https://github.com/HabitRPG/habitica.git
synced 2025-12-17 06:37:23 +01:00
42 lines
1.3 KiB
JavaScript
42 lines
1.3 KiB
JavaScript
import {
|
|
encrypt as encryptPassword,
|
|
makeSalt,
|
|
} from '../../../../../website/server/libs/password';
|
|
|
|
describe('Password Utilities', () => {
|
|
describe('Encrypt', () => {
|
|
it('always encrypt the same password to the same value when using the same salt', () => {
|
|
let textPassword = 'mySecretPassword';
|
|
let salt = makeSalt();
|
|
let encryptedPassword = encryptPassword(textPassword, salt);
|
|
|
|
expect(encryptPassword(textPassword, salt)).to.eql(encryptedPassword);
|
|
});
|
|
|
|
it('never encrypt the same password to the same value when using a different salt', () => {
|
|
let textPassword = 'mySecretPassword';
|
|
let aSalt = makeSalt();
|
|
let anotherSalt = makeSalt();
|
|
let anEncryptedPassword = encryptPassword(textPassword, aSalt);
|
|
let anotherEncryptedPassword = encryptPassword(textPassword, anotherSalt);
|
|
|
|
expect(anEncryptedPassword).not.to.eql(anotherEncryptedPassword);
|
|
});
|
|
});
|
|
|
|
describe('Make Salt', () => {
|
|
it('creates a salt with length 10 by default', () => {
|
|
let salt = makeSalt();
|
|
|
|
expect(salt.length).to.eql(10);
|
|
});
|
|
|
|
it('can create a salt of any length', () => {
|
|
let length = 24;
|
|
let salt = makeSalt(length);
|
|
|
|
expect(salt.length).to.eql(length);
|
|
});
|
|
});
|
|
});
|