mirror of
https://github.com/thelounge/thelounge
synced 2024-12-24 11:23:07 +00:00
001f96035b
- PasswordCompareAsync prevents timeouts on resource constraint devices - All password.compare calls are now async - Updated tests to accept async functions
40 lines
1.4 KiB
JavaScript
40 lines
1.4 KiB
JavaScript
"use strict";
|
|
|
|
const expect = require("chai").expect;
|
|
const Helper = require("../../src/helper");
|
|
|
|
describe("Client passwords", function() {
|
|
const inputPassword = "my$Super@Cool Password";
|
|
|
|
it("hashed password should match", function() {
|
|
// Generated with third party tool to test implementation
|
|
let comparedPassword = Helper.password.compare(inputPassword, "$2a$11$zrPPcfZ091WNfs6QrRHtQeUitlgrJcecfZhxOFiQs0FWw7TN3Q1oS");
|
|
|
|
return comparedPassword.then(result => {
|
|
expect(result).to.be.true;
|
|
});
|
|
});
|
|
|
|
it("wrong hashed password should not match", function() {
|
|
// Compare against a fake hash
|
|
let comparedPassword = Helper.password.compare(inputPassword, "$2a$11$zrPPcfZ091WRONGPASSWORDitlgrJcecfZhxOFiQs0FWw7TN3Q1oS");
|
|
|
|
return comparedPassword.then(result => {
|
|
expect(result).to.be.false;
|
|
});
|
|
});
|
|
|
|
it("freshly hashed password should match", function() {
|
|
let hashedPassword = Helper.password.hash(inputPassword);
|
|
let comparedPassword = Helper.password.compare(inputPassword, hashedPassword);
|
|
|
|
return comparedPassword.then((result) => {
|
|
expect(result).to.be.true;
|
|
});
|
|
});
|
|
|
|
it("shout passwords should be marked as old", function() {
|
|
expect(Helper.password.requiresUpdate("$2a$08$K4l.hteJcCP9D1G5PANzYuBGvdqhUSUDOLQLU.xeRxTbvtp01KINm")).to.be.true;
|
|
expect(Helper.password.requiresUpdate("$2a$11$zrPPcfZ091WNfs6QrRHtQeUitlgrJcecfZhxOFiQs0FWw7TN3Q1oS")).to.be.false;
|
|
});
|
|
});
|