Create client E2E fixed, tests for validateDni
This commit is contained in:
parent
688881fac4
commit
2a06244fd6
|
@ -58,7 +58,7 @@ describe('create client path', () => {
|
||||||
it('should receive an error when clicking the create button having all the form fields empty but Tax Number', () => {
|
it('should receive an error when clicking the create button having all the form fields empty but Tax Number', () => {
|
||||||
return nightmare
|
return nightmare
|
||||||
.clearInput(selectors.createClientView.name)
|
.clearInput(selectors.createClientView.name)
|
||||||
.type(selectors.createClientView.taxNumber, 'AVG tax')
|
.type(selectors.createClientView.taxNumber, '16195279J')
|
||||||
.click(selectors.createClientView.createButton)
|
.click(selectors.createClientView.createButton)
|
||||||
.waitForSnackbar()
|
.waitForSnackbar()
|
||||||
.then(result => {
|
.then(result => {
|
||||||
|
@ -127,7 +127,7 @@ describe('create client path', () => {
|
||||||
.wait(selectors.createClientView.email)
|
.wait(selectors.createClientView.email)
|
||||||
.clearInput(selectors.createClientView.email)
|
.clearInput(selectors.createClientView.email)
|
||||||
.type(selectors.createClientView.name, 'Carol Danvers')
|
.type(selectors.createClientView.name, 'Carol Danvers')
|
||||||
.type(selectors.createClientView.taxNumber, 'Avengers Tax Number')
|
.type(selectors.createClientView.taxNumber, '16195279J')
|
||||||
.type(selectors.createClientView.socialName, 'AVG tax')
|
.type(selectors.createClientView.socialName, 'AVG tax')
|
||||||
.type(selectors.createClientView.userName, 'CaptainMarvel')
|
.type(selectors.createClientView.userName, 'CaptainMarvel')
|
||||||
.type(selectors.createClientView.email, 'CarolDanvers@verdnatura.es')
|
.type(selectors.createClientView.email, 'CarolDanvers@verdnatura.es')
|
||||||
|
|
|
@ -0,0 +1,86 @@
|
||||||
|
const validateDni = require('../validateDni');
|
||||||
|
|
||||||
|
fdescribe('DNI validation', () => {
|
||||||
|
it('should return false for invented DNI', async () => {
|
||||||
|
let isValid = validateDni('Pepinillos');
|
||||||
|
expect(isValid).toBeFalsy();
|
||||||
|
});
|
||||||
|
|
||||||
|
// Spanish
|
||||||
|
|
||||||
|
it('should return true for valid spanish DNI', async () => {
|
||||||
|
let isValid = validateDni('20849756A');
|
||||||
|
expect(isValid).toBeTruthy();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should return true for spanish DNI with exceeded digits', async () => {
|
||||||
|
let isValid = validateDni('208497563239A');
|
||||||
|
expect(isValid).toBeFalsy();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should return false for spanish DNI with invalid letter', async () => {
|
||||||
|
let isValid = validateDni('20243746E');
|
||||||
|
expect(isValid).toBeFalsy();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should return true for valid spanish CIF', async () => {
|
||||||
|
let isValid = validateDni('B97367486');
|
||||||
|
expect(isValid).toBeTruthy();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should return false for spanish CIF with invalid letter', async () => {
|
||||||
|
let isValid = validateDni('A97527786');
|
||||||
|
expect(isValid).toBeFalsy();
|
||||||
|
});
|
||||||
|
|
||||||
|
// French
|
||||||
|
|
||||||
|
it('should return true for valid french DNI', async () => {
|
||||||
|
let isValid = validateDni('FR1B123456789');
|
||||||
|
expect(isValid).toBeTruthy();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should return true for french DNI with exceeded digits', async () => {
|
||||||
|
let isValid = validateDni('FR1B12345678910');
|
||||||
|
expect(isValid).toBeFalsy();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should return true for french DNI with bad syntax', async () => {
|
||||||
|
let isValid = validateDni('FR1B12345678A');
|
||||||
|
expect(isValid).toBeFalsy();
|
||||||
|
});
|
||||||
|
|
||||||
|
// Italian
|
||||||
|
|
||||||
|
it('should return true for valid italian DNI', async () => {
|
||||||
|
let isValid = validateDni('IT12345678911');
|
||||||
|
expect(isValid).toBeTruthy();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should return true for italian DNI with exceeded digits', async () => {
|
||||||
|
let isValid = validateDni('IT123456789112');
|
||||||
|
expect(isValid).toBeFalsy();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should return true for italian DNI with bad syntax', async () => {
|
||||||
|
let isValid = validateDni('IT1234567891A');
|
||||||
|
expect(isValid).toBeFalsy();
|
||||||
|
});
|
||||||
|
|
||||||
|
// Portuguese
|
||||||
|
|
||||||
|
it('should return true for valid portuguese DNI', async () => {
|
||||||
|
let isValid = validateDni('PT123456789');
|
||||||
|
expect(isValid).toBeTruthy();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should return true for portuguese DNI with exceeded digits', async () => {
|
||||||
|
let isValid = validateDni('PT12345678910');
|
||||||
|
expect(isValid).toBeFalsy();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should return true for portuguese DNI with bad syntax', async () => {
|
||||||
|
let isValid = validateDni('PT12345678A');
|
||||||
|
expect(isValid).toBeFalsy();
|
||||||
|
});
|
||||||
|
});
|
|
@ -46,22 +46,21 @@ module.exports = fiWithCountry => {
|
||||||
let index = 'XYZ'.indexOf(fi.charAt(0));
|
let index = 'XYZ'.indexOf(fi.charAt(0));
|
||||||
let nif = index == -1 ? fi : index.toString() + fi.substring(1);
|
let nif = index == -1 ? fi : index.toString() + fi.substring(1);
|
||||||
|
|
||||||
let number = parseInt(nif.substring(0, 8));
|
let rest = parseInt(nif.substring(0, 8)) % 23;
|
||||||
let rest = number % 23;
|
|
||||||
computedDigit = 'TRWAGMYFPDXBNJZSQVHLCKE'.charAt(rest);
|
computedDigit = 'TRWAGMYFPDXBNJZSQVHLCKE'.charAt(rest);
|
||||||
}
|
}
|
||||||
|
|
||||||
return computedDigit == lastDigit;
|
return computedDigit == lastDigit;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
pt: {
|
|
||||||
regExp: /^\d{9}$/
|
|
||||||
},
|
|
||||||
fr: {
|
fr: {
|
||||||
regExp: /^[A-Z0-9]{2}\d{9}$/
|
regExp: /^[A-Z0-9]{2}\d{9}$/
|
||||||
},
|
},
|
||||||
it: {
|
it: {
|
||||||
regExp: /^\d{11}$/
|
regExp: /^\d{11}$/
|
||||||
|
},
|
||||||
|
pt: {
|
||||||
|
regExp: /^\d{9}$/
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue