Как выполнить модульное тестирование ниже функции.
Мои входные значения из текстовых полей 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);
}
}