NikitaRulenko / weblabs

Курс лабораторных работ по веб-разработке.
0 stars 0 forks source link

lw9 #6

Open ivklgn opened 5 years ago

ivklgn commented 5 years ago
  1. в данном коде не используется контекст для работы с valid
var codeValidator = {
    valid: false,
    verify(userCode, code) {
        if (userCode === code) {
            valid = true;
            return valid;
        } else return false;
    }
   test() { valid = null }
}
  1. Инкапсулировать codeValidator в RecoveryPassword

  2. emailSend, smsSend не должен ничего знать о codeGen, они должны заниматься только отправкой сообщения получателям

  3. value - непонятно что

  4. codeGen - не объект с состоянием, лучше сделать простой функцией

  5. Имена клаасов и функциональных функций с большой буквы. Email и SMS именуются как классы

ivklgn commented 5 years ago
  1. из html файла с тестами можно удалить функционал, он есть в main.js (!) при возникновении проблем с очередностью https://learn.javascript.ru/external-script
  2. данный код должен быть в tests.js
        var RPcode = RecoveryPassword.code;
        var cGcode = codeGenerator();
        var resultSMS = RecoveryPassword.recovery("sms", "11111111111");
        var resultEmail = RecoveryPassword.recovery("email", "test@test.ru");
        var resultValidate = RecoveryPassword.validate(RPcode);
        var falseSMS = RecoveryPassword.recovery("sms", "123");
        var falseEmail = RecoveryPassword.recovery("email", "qwe");
        var wrongMethod = RecoveryPassword.recovery("","");
        var wrongRecData = RecoveryPassword.validate("ololo");

пример теста с утверждением:

 it("Невалидный телефон при восстановлении через смс должен вернуть false", function () {
   assert.equal(RecoveryPassword.recovery("sms", "123"), false);
   assert.equal(RecoveryPassword.recovery("sms"), false);
   assert.equal(RecoveryPassword.recovery("sms", ""), false);
 });