You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
117 lines
2.7 KiB
117 lines
2.7 KiB
4 weeks ago
|
import test from 'ava'
|
||
|
import Chance from '../chance.js'
|
||
|
import _ from 'lodash'
|
||
|
|
||
|
const chance = new Chance()
|
||
|
|
||
|
// chance.cf()
|
||
|
test('cf() returns a valid random cf', t => {
|
||
|
_.times(1000, () => {
|
||
|
let cf = chance.cf()
|
||
|
t.true(_.isString(cf))
|
||
|
t.is(cf.length, 16)
|
||
|
t.true(/[A-Z]{6}\d{2}[A-Z]\d{2}[A-Z]\d{3}[A-Z]/.test(cf))
|
||
|
})
|
||
|
})
|
||
|
|
||
|
test('cf() returns a consistent cf', t => {
|
||
|
let testCases = [{
|
||
|
item: {
|
||
|
first: 'Aldo',
|
||
|
last: 'Fabrizi',
|
||
|
gender: 'Male',
|
||
|
birthday: new Date(1905,10,1),
|
||
|
city: 'h501'
|
||
|
},
|
||
|
cf: 'FBRLDA05S01H501A'
|
||
|
}, {
|
||
|
item: {
|
||
|
first: 'Sophia',
|
||
|
last: 'Loren',
|
||
|
gender: 'Female',
|
||
|
birthday: new Date(1934,8,20),
|
||
|
city: 'h501'
|
||
|
},
|
||
|
cf: 'LRNSPH34P60H501G'
|
||
|
}, {
|
||
|
item: {
|
||
|
first: 'Claudia',
|
||
|
last: 'Cardinale',
|
||
|
gender: 'Female',
|
||
|
birthday: new Date(1938,3,15),
|
||
|
city: 'z352'
|
||
|
},
|
||
|
cf: 'CRDCLD38D55Z352Q'
|
||
|
}, {
|
||
|
item: {
|
||
|
first: 'Sergio',
|
||
|
last: 'Leone',
|
||
|
gender: 'Male',
|
||
|
birthday: new Date(1929,0,3),
|
||
|
city: 'h501'
|
||
|
},
|
||
|
cf: 'LNESRG29A03H501W'
|
||
|
}, {
|
||
|
item: {
|
||
|
first: 'Claudio',
|
||
|
last: 'Marchisio',
|
||
|
gender: 'Male',
|
||
|
birthday: new Date(1986,0,19),
|
||
|
city: 'l219'
|
||
|
},
|
||
|
cf: 'MRCCLD86A19L219F'
|
||
|
}, {
|
||
|
item: {
|
||
|
first: 'Eu',
|
||
|
last: 'Ho',
|
||
|
gender: 'Male',
|
||
|
birthday: new Date(2012,3,12),
|
||
|
city: 'z210'
|
||
|
},
|
||
|
cf: 'HOXEUX12D12Z210Q'
|
||
|
}];
|
||
|
|
||
|
testCases.map((test) => {
|
||
|
t.is(chance.cf(test.item), test.cf)
|
||
|
})
|
||
|
})
|
||
|
|
||
|
// chance.pl_nip()
|
||
|
test('pl_nip() returns a valid NIP number', t => {
|
||
|
_.times(1000, () => {
|
||
|
let nip = chance.pl_nip()
|
||
|
t.true(_.isString(nip))
|
||
|
t.is(nip.length, 10)
|
||
|
})
|
||
|
})
|
||
|
|
||
|
// chance.pl_pesel()
|
||
|
test('pl_pesel() returns a valid PESEL number', t => {
|
||
|
_.times(1000, () => {
|
||
|
let pesel = chance.pl_pesel()
|
||
|
t.true(_.isString(pesel))
|
||
|
t.is(pesel.length, 11)
|
||
|
})
|
||
|
})
|
||
|
|
||
|
// chance.pl_regon()
|
||
|
test('pl_regon() returns a valid REGON number', t => {
|
||
|
_.times(1000, () => {
|
||
|
let regon = chance.pl_regon()
|
||
|
t.true(_.isString(regon))
|
||
|
t.is(regon.length, 9)
|
||
|
})
|
||
|
})
|
||
|
|
||
|
// chance.vat()
|
||
|
test('vat() returns a valid italian vat number', t => {
|
||
|
_.times(1000, () => {
|
||
|
let vat = chance.vat({ country: 'it' })
|
||
|
t.true(_.isString(vat))
|
||
|
t.is(vat.length, 11)
|
||
|
let first = vat.charAt(0)
|
||
|
t.true(first === '0' || first === '1')
|
||
|
t.true(chance.luhn_check(vat))
|
||
|
})
|
||
|
})
|