mirror of
https://github.com/zulip/zulip.git
synced 2025-11-14 19:06:09 +00:00
Explicitly stubbing i18n in 48 different files is mostly busy work at this point, and it doesn't provide much signal, since often it's invoked only to satisfy transitive dependencies.
75 lines
2.2 KiB
JavaScript
75 lines
2.2 KiB
JavaScript
set_global('zxcvbn', zrequire('zxcvbn', 'zxcvbn'));
|
|
zrequire('common');
|
|
|
|
|
|
run_test('basics', () => {
|
|
let accepted;
|
|
let password;
|
|
let warning;
|
|
|
|
const bar = (function () {
|
|
const self = {};
|
|
|
|
self.width = function (width) {
|
|
self.w = width;
|
|
return self;
|
|
};
|
|
|
|
self.removeClass = function (arg) {
|
|
assert.equal(arg, 'bar-success bar-danger');
|
|
return self;
|
|
};
|
|
|
|
self.addClass = function (arg) {
|
|
self.added_class = arg;
|
|
return self;
|
|
};
|
|
|
|
return self;
|
|
}());
|
|
|
|
function password_field(min_length, min_guesses) {
|
|
const self = {};
|
|
|
|
self.data = function (field) {
|
|
if (field === 'minLength') {
|
|
return min_length;
|
|
} else if (field === 'minGuesses') {
|
|
return min_guesses;
|
|
}
|
|
};
|
|
|
|
return self;
|
|
}
|
|
|
|
password = 'z!X4@S_&';
|
|
accepted = common.password_quality(password, bar, password_field(10, 80000));
|
|
assert(!accepted);
|
|
assert.equal(bar.w, '39.7%');
|
|
assert.equal(bar.added_class, 'bar-danger');
|
|
warning = common.password_warning(password, password_field(10));
|
|
assert.equal(warning, 'translated: Password should be at least 10 characters long');
|
|
|
|
password = 'foo';
|
|
accepted = common.password_quality(password, bar, password_field(2, 200));
|
|
assert(accepted);
|
|
assert.equal(bar.w, '10.390277164940581%');
|
|
assert.equal(bar.added_class, 'bar-success');
|
|
warning = common.password_warning(password, password_field(2));
|
|
assert.equal(warning, 'translated: Password is too weak');
|
|
|
|
password = 'aaaaaaaa';
|
|
accepted = common.password_quality(password, bar, password_field(6, 1e100));
|
|
assert(!accepted);
|
|
assert.equal(bar.added_class, 'bar-danger');
|
|
warning = common.password_warning(password, password_field(6));
|
|
assert.equal(warning, 'Repeats like "aaa" are easy to guess');
|
|
|
|
delete global.zxcvbn;
|
|
password = 'aaaaaaaa';
|
|
accepted = common.password_quality(password, bar, password_field(6, 1e100));
|
|
assert(accepted === undefined);
|
|
warning = common.password_warning(password, password_field(6));
|
|
assert(warning === undefined);
|
|
});
|