Как выполнить модульный тест, передавая временные значения с помощью Karma Jasmine Angular 7 - PullRequest
1 голос
/ 01 октября 2019

Как выполнить модульное тестирование ниже функции.

Мои входные значения из текстовых полей iban: FRKK 1111 1222 22AA AAAA AAAA A33.

Первые два символа - это мой код страны, а FR - код моей страны. .

мои ожидания должны быть FRKK1111122222AAAAAAAAAAA33

Мои регулярные выражения и константа страны должны быть

export const RegexPattern = {
    COUNTRY_US_FR_REGEX : /[\S]{4}(\d{10})([a-zA-Z]{11})(\d{2})/,
    COUNTRY_ITALY_REGEX : /[\S]{4}([a-zA-Z]{1})(\d{10})([a-zA-Z]{12})/,
    COUNTRY_UK_REGEX : /[\S]{4}([a-zA-Z]{4})(\d{14})/,
    COUNTRY_GERMANY_REGEX : /([A-Z]{2})([A-Za-z]{2})(\d{18})/
};

export const CountryConstant = {
    FRANCE : 'FR',
    US : 'US',
    ITALY : 'IT',
    UK : 'UK',
    GB : 'GB',
    GERMANY : 'DE'
};

Ниже моя функция iban

onIBANChange(ibanControl: FormControl) {
    const iban = ibanControl.value.replace(/\s/g, '');
    // const countrycode = sessionStorage.getItem('country');
    const countrycode = 'FR';
    const ibanCountrycode = iban.substring(0, 2);
    let result = false;
    let regex;
    if (countrycode === ibanCountrycode) {
      if ((countrycode === CountryConstant.FRANCE || countrycode === CountryConstant.US) && iban.length === 27) {
        regex = RegexPattern.COUNTRY_US_FR_REGEX;
      } else if (countrycode === CountryConstant.ITALY && iban.length === 27) {
        regex = RegexPattern.COUNTRY_ITALY_REGEX;
      } else if ((countrycode === CountryConstant.UK || countrycode === CountryConstant.GB) && iban.length === 22) {
        regex = RegexPattern.COUNTRY_UK_REGEX;
      } else if (countrycode === CountryConstant.GERMANY && iban.length === 22) {
        regex = RegexPattern.COUNTRY_GERMANY_REGEX;
      }
      result = regex ? regex.test(iban) : false;
    }
    if (result === false) {
        ibanControl.setErrors({notValid: true});
      } else {
        ibanControl.setErrors(null);
      }
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...