passwordtest
Version:
Password Strength Tester
332 lines (327 loc) • 8.34 kB
JavaScript
#!/usr/bin/node
"use strict"
const nanoTest = new (require('nano-test')).test();
const passwordCheck = new (require('./index.js')).password();
nanoTest.add(
'setup with wrong type',
{
"function":passwordCheck.set,
"options":[
'checkWrong',
'size',
false
]
},
"==",
false
);
nanoTest.add(
'setup with wrong name',
{
"function":passwordCheck.set,
"options":[
'check',
'wrong',
false
]
},
"==",
false
);
nanoTest.add(
'setup check upperCase',
{
"function":passwordCheck.set,
"options":[
'check',
'upperCase',
true
]
},
"==",
true
);
nanoTest.add(
'setup check lowerCase',
{
"function":passwordCheck.set,
"options":[
'check',
'lowerCase',
true
]
},
"==",
true
);
nanoTest.add(
'setup check number',
{
"function":passwordCheck.set,
"options":[
'check',
'number',
true
]
},
"==",
true
);
nanoTest.add(
'setup check special',
{
"function":passwordCheck.set,
"options":[
'check',
'special',
true
]
},
"==",
true
);
nanoTest.add(
'setup check size',
{
"function":passwordCheck.set,
"options":[
'check',
'size',
true
]
},
"==",
true
);
nanoTest.add(
'setup min upperCase',
{
"function":passwordCheck.set,
"options":[
'min',
'upperCase',
2
]
},
"==",
true
);
nanoTest.add(
'setup min lowerCase',
{
"function":passwordCheck.set,
"options":[
'min',
'lowerCase',
2
]
},
"==",
true
);
nanoTest.add(
'setup min number',
{
"function":passwordCheck.set,
"options":[
'min',
'number',
2
]
},
"==",
true
);
nanoTest.add(
'setup min special',
{
"function":passwordCheck.set,
"options":[
'min',
'special',
1
]
},
"==",
true
);
nanoTest.add(
'setup min size',
{
"function":passwordCheck.set,
"options":[
'min',
'size',
12
]
},
"==",
true
);
nanoTest.add(
'setup max upperCase',
{
"function":passwordCheck.set,
"options":[
'max',
'upperCase',
10
]
},
"==",
true
);
nanoTest.add(
'setup max lowerCase',
{
"function":passwordCheck.set,
"options":[
'max',
'lowerCase',
10
]
},
"==",
true
);
nanoTest.add(
'setup max number',
{
"function":passwordCheck.set,
"options":[
'max',
'number',
10
]
},
"==",
true
);
nanoTest.add(
'setup max special',
{
"function":passwordCheck.set,
"options":[
'max',
'special',
10
]
},
"==",
true
);
nanoTest.add(
'setup max size',
{
"function":passwordCheck.set,
"options":[
'max',
'size',
40
]
},
"==",
true
);
nanoTest.add(
'check correct password',
{
"function":passwordCheck.check,
"options":[
"C0rr3ct.P4ssw0rd."
]
},
"===",
true
);
nanoTest.add(
'check correct password log',
{
"function":passwordCheck.getLog,
"options":[
]
},
"j==",
{
checks:{
min:{
upperCase: true,
lowerCase: true,
number: true,
special: true,
size: true
},
max:{
upperCase: true,
lowerCase: true,
number: true,
special: true,
size: true
},
upperCase: true,
lowerCase: true,
number: true,
special: true,
size: true
},
failed: [],
ok: [],
result: true
}
);
nanoTest.add(
'check no upper case',
{
"function":passwordCheck.check,
"options":[
"wr0ng.p4ssw0rd.",
]
},
"==",
false
);
nanoTest.add(
'check no lower case',
{
"function":passwordCheck.check,
"options":[
"WR0NG.P4SSW0RD.",
]
},
"===",
false
);
nanoTest.add(
'check no numbers',
{
"function":passwordCheck.check,
"options":[
"wrong.password.",
]
},
"==",
false
);
nanoTest.add(
'check no special',
{
"function":passwordCheck.check,
"options":[
"WR0ngp4ssword",
]
},
"==",
false
);
nanoTest.add(
'check short password',
{
"function":passwordCheck.check,
"options":[
"S0hr1T",
]
},
"==",
false
);
nanoTest.run();