node-elizabeth
Version:

238 lines (183 loc) • 9.51 kB
JavaScript
;
var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }();
var _providers = require('./../providers');
var _util = require('./../util');
var _personal = require('./../locales/int/personal');
var data = (0, _util.pull)('personal.json', 'en');
var ruData = (0, _util.pull)('personal.json', 'ru');
var personal = new _providers.Personal();
describe('Test personal provider', function () {
it('should return random age', function () {
var res = personal.age();
expect(res).toBeGreaterThanOrEqual(16);
expect(res).toBeLessThanOrEqual(66);
expect(personal._store.age).toEqual(res);
});
it('should return random child count', function () {
var personal = new _providers.Personal();
personal._store.age = 17;
expect(personal.childCount()).toEqual(0);
personal._store.age = 50;
var result = personal.childCount({ maxChildren: 10 });
expect(result).toBeGreaterThanOrEqual(0);
expect(result).toBeLessThanOrEqual(10);
});
it('should return random working experience', function () {
var personal = new _providers.Personal();
personal._store.age = 18;
expect(personal.workExperience()).toEqual(0);
personal._store.age = 40;
expect(personal.workExperience({ startFrom: 30 })).toEqual(10);
});
it('should return random name for current locale and gender', function () {
expect(data.names.female).toContain(personal.name());
expect(data.names.male).toContain(personal.name({ gender: 'male' }));
});
it('should return random name for current locale and gender', function () {
expect(data.surnames).toContain(personal.surname());
expect(data.surnames).toContain(personal.surname({ gender: 'male' }));
var personal_ = new _providers.Personal({ locale: 'ru' });
expect(ruData.surnames.female).toContain(personal_.surname());
expect(ruData.surnames.male).toContain(personal_.surname({ gender: 'male' }));
});
it('should return random title', function () {
expect(data.title.female.typical).toContain(personal.title());
expect(data.title.female.academic).toContain(personal.title({ titleType: 'academic' }));
expect(data.title.male.typical).toContain(personal.title({ gender: 'male' }));
expect(data.title.male.academic).toContain(personal.title({ gender: 'male', titleType: 'academic' }));
});
it('should return full name', function () {
var _personal$fullName$sp = personal.fullName().split(' '),
_personal$fullName$sp2 = _slicedToArray(_personal$fullName$sp, 2),
firstName = _personal$fullName$sp2[0],
lastName = _personal$fullName$sp2[1];
expect(data.names.female).toContain(firstName);
expect(data.surnames).toContain(lastName);
var _personal$fullName$sp3 = personal.fullName({ reversed: true }).split(' ');
var _personal$fullName$sp4 = _slicedToArray(_personal$fullName$sp3, 2);
lastName = _personal$fullName$sp4[0];
firstName = _personal$fullName$sp4[1];
expect(data.names.female).toContain(firstName);
expect(data.surnames).toContain(lastName);
var _personal$fullName$sp5 = personal.fullName({ gender: 'male' }).split(' ');
var _personal$fullName$sp6 = _slicedToArray(_personal$fullName$sp5, 2);
firstName = _personal$fullName$sp6[0];
lastName = _personal$fullName$sp6[1];
expect(data.names.male).toContain(firstName);
expect(data.surnames).toContain(lastName);
var _personal$fullName$sp7 = personal.fullName({ gender: 'male', reversed: true }).split(' ');
var _personal$fullName$sp8 = _slicedToArray(_personal$fullName$sp7, 2);
lastName = _personal$fullName$sp8[0];
firstName = _personal$fullName$sp8[1];
expect(data.names.male).toContain(firstName);
expect(data.surnames).toContain(lastName);
});
// TODO: Check regexp;
it('should return random username', function () {
expect(personal.username()).toMatch(new RegExp(/[a-z]+?(_|-|.*)[0-9]{1,4}/g));
});
it('should return random email address', function () {
expect(personal.email()).toMatch(new RegExp(/[a-z]+?(_|-|.*)[0-9]{1,4}\@?(@gmail.com|@yandex.com|@yahoo.com|@live.com|@outlook.com)/g));
});
it('should return random bitcoin address', function () {
expect(personal.bitcoin()).toMatch(new RegExp(/^([13])[A-z0-9]{33}/g));
});
it('should return random cvv', function () {
var result = personal.cvv();
expect(result).toBeGreaterThanOrEqual(100);
expect(result).toBeLessThanOrEqual(999);
});
it('should return random CC number', function () {
var visa = new RegExp('^4[0-9]{12}(?:[0-9]{3})?$');
var amex = new RegExp('^3[47][0-9]{13}$');
var mastercard = new RegExp('^5[1-5][0-9]{14}$');
expect(personal.creditCardNumber()).toMatch(visa);
expect(personal.creditCardNumber({ cardType: 'a' })).toMatch(amex);
expect(personal.creditCardNumber({ cardType: 'm' })).toMatch(mastercard);
expect(function () {
return personal.creditCardNumber({ cardType: 'none' });
}).toThrow(new Error('Unsupported card type'));
});
it('should return random CC expiration date', function () {
expect(personal.creditCardExpirationDate()).toMatch(/^(0[1-9]|1[0-2])\/?([0-9]{4}|[0-9]{2})$/);
});
it('should return random CID code', function () {
var result = personal.cid();
expect(result).toBeGreaterThanOrEqual(1000);
expect(result).toBeLessThanOrEqual(9999);
});
it('should return random paypall account', function () {
expect(personal.paypal()).toMatch(new RegExp(/[a-z]+?(_|-|.*)[0-9]{1,4}\@?(@gmail.com|@yandex.com|@yahoo.com|@live.com|@outlook.com)/g));
});
it('should return random social media profile', function () {
expect(personal.socialMediaProfile()).toMatch(new RegExp(/^(http:\/\/facebook.com\/|http:\/\/twitter.com\/|http:\/\/medium.com\/@)[a-z]+?(_|-|.*)[0-9]{1,4}/g));
});
it('should return random gender', function () {
expect([0, 1, 2, 9]).toContain(personal.gender({ iso5218: true }));
expect(_personal.GENDER_SYMBOLS).toContain(personal.gender({ symbol: true }));
expect(data.gender).toContain(personal.gender());
});
it('should return random height', function () {
var result = personal.height();
expect(result).toBeGreaterThanOrEqual(1.5);
expect(result).toBeLessThanOrEqual(2);
});
it('should return random weight', function () {
var result = personal.weight();
expect(result).toBeGreaterThanOrEqual(38);
expect(result).toBeLessThanOrEqual(90);
});
it('should return random blood group', function () {
expect(_personal.BLOOD_GROUPS).toContain(personal.bloodType());
});
it('should return random sexual orientation', function () {
expect(_personal.SEXUALITY_SYMBOLS).toContain(personal.sexualOrientation({ symbol: true }));
expect(data.sexuality).toContain(personal.sexualOrientation());
});
it('should return random occupation', function () {
expect(data.occupation).toContain(personal.occupation());
});
it('should return random political views', function () {
expect(data.political_views).toContain(personal.politicalViews());
});
it('should return random world view', function () {
expect(data.worldview).toContain(personal.worldView());
});
it('should return random view on', function () {
expect(data.views_on).toContain(personal.viewOn());
});
it('should return random nationality', function () {
expect(data.nationality).toContain(personal.nationality());
var personal_ = new _providers.Personal({ locale: 'ru' });
expect(ruData.nationality.male).toContain(personal_.nationality({ gender: 'male' }));
expect(ruData.nationality.female).toContain(personal_.nationality());
});
it('should return random university', function () {
expect(data.university).toContain(personal.university());
});
it('should return random academic degree', function () {
expect(data.academic_degree).toContain(personal.academicDegree());
});
it('should return random language', function () {
expect(data.language).toContain(personal.language());
});
it('should return random favorite movie', function () {
expect(data.favorite_movie).toContain(personal.favoriteMovie());
});
it('should return random favorite music genre', function () {
expect(_personal.FAVORITE_MUSIC_GENRE).toContain(personal.favoriteMusicGenre());
});
//TODO: implement personal.telephone();
it('should return phone number', function () {
expect(personal.telephone()).toBeTruthy();
var result = personal.telephone({ mask: '###' });
expect(result).toHaveLength(3);
expect(result).toMatch(/^\d{3}/);
});
it('should return random identifier', function () {
expect(personal.identifier()).toMatch(new RegExp(/[0-9]{2}-[0-9]{2}\/[0-9]{2}/g));
});
it('should return random level of english', function () {
expect(_personal.ENGLISH_LEVEL).toContain(personal.levelOfEnglish());
});
});