책에서는 verifyPassword() 함수에 기능을 점점 추가할 예정인데, 어떻게 다양한 기능을 테스트할 수 있는지 여러 방법으로 소개하겠다.
다음 코드는 verifyPassword() 함수의 버전 0에 해당하는 구현부로, 매우 간단하고 기초적인 형태의 예제다.
예제 2-2 비밀번호 검증 버전 0
// password-verifier0.js
const verifyPassword = (input, rules) => {
const errors = [];
rules.forEach(rule => {
const result = rule(input);
if (!result.passed) {
errors.push(`error ${result.reason}`);
}
});
return errors;
};
예제 2-2의 verifyPassword() 함수는 아직 함수형 스타일로 작성되지 않았지만, 리팩터링은 나중에 진행하도록 하겠다. 여기에서는 테스트에 집중할 수 있도록 코드를 단순한 구조로 유지한다.