11/* eslint-env mocha */
22const { expect } = require ( 'chai' )
3- const { splitRecord, splitRule, isValid } = require ( './cleanupPasswords' )
3+ const { splitRecord, splitRule, isValidPassword , isValidRecord } = require ( './cleanupPasswords' )
44
55const testData = [
66 '1-3 a: abcde' ,
@@ -27,13 +27,27 @@ describe('--- Day 2: Password Philosophy ---', () => {
2727 } )
2828 } )
2929 } )
30- describe ( 'isValid ()' , ( ) => {
30+ describe ( 'isValidPassword ()' , ( ) => {
3131 it ( 'checks if a specified password matches the specified rule' , ( ) => {
3232 const expectedResults = [ true , false , true ]
3333 testData . forEach ( ( row , idx ) => {
3434 const { rule, password } = splitRecord ( row )
3535 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 ) )
3751 . to . equal ( expectedResults [ idx ] )
3852 } )
3953 } )
0 commit comments