1
1
/* eslint-env mocha */
2
2
const { expect } = require ( 'chai' )
3
- const { splitRecord, splitRule, isValid } = require ( './cleanupPasswords' )
3
+ const { splitRecord, splitRule, isValidPassword , isValidRecord } = require ( './cleanupPasswords' )
4
4
5
5
const testData = [
6
6
'1-3 a: abcde' ,
@@ -27,13 +27,27 @@ describe('--- Day 2: Password Philosophy ---', () => {
27
27
} )
28
28
} )
29
29
} )
30
- describe ( 'isValid ()' , ( ) => {
30
+ describe ( 'isValidPassword ()' , ( ) => {
31
31
it ( 'checks if a specified password matches the specified rule' , ( ) => {
32
32
const expectedResults = [ true , false , true ]
33
33
testData . forEach ( ( row , idx ) => {
34
34
const { rule, password } = splitRecord ( row )
35
35
const { min, max, char } = splitRule ( rule )
36
- expect ( isValid ( { min, max, char } , password ) )
36
+ expect ( isValidPassword ( { min, max, char } , password ) )
37
+ . to . equal ( expectedResults [ idx ] )
38
+ } )
39
+ } )
40
+ it ( 'won\'t allow more than the specified character count' , ( ) => {
41
+ const badPass = 'abcabcabcabc'
42
+ expect ( isValidPassword ( { min : 2 , max : 3 , char : 'a' } , badPass ) )
43
+ . to . equal ( false )
44
+ } )
45
+ } )
46
+ describe ( 'isValidRecord()' , ( ) => {
47
+ it ( 'checks if a specified record contains valid rule and password' , ( ) => {
48
+ const expectedResults = [ true , false , true ]
49
+ testData . forEach ( ( row , idx ) => {
50
+ expect ( isValidRecord ( row ) )
37
51
. to . equal ( expectedResults [ idx ] )
38
52
} )
39
53
} )
0 commit comments