south-african-fake-id-generator
Version:
This package generates valid and invalid dummy south african id numbers.
71 lines (69 loc) • 2.9 kB
JavaScript
var fakeSaIdGenerator = require('../index.js');
var expect = require('chai').expect;
var saIdParser = require('south-african-id-parser');
var moment = require('moment');
describe('fakeSaIdGenerator', function() {
context('generateFakeId', function() {
it('should generate random 13 digit rsa id', function() {
var fakeId = fakeSaIdGenerator.generateFakeId()
expect(fakeId).to.be.an('string').that.includes(8);
expect(fakeId).to.have.lengthOf(13);
})
it('should generate a valid rsa id', function() {
var validIdNumber = fakeSaIdGenerator.generateFakeId();
var isValid = saIdParser.validate(validIdNumber);
expect(isValid).to.be.equal(true);
})
})
context('generateInvalidFakeId', function() {
it('should generate random 13 digit rsa id', function() {
var fakeId = fakeSaIdGenerator.generateInvalidFakeId()
expect(fakeId).to.be.an('string').that.includes(8);
expect(fakeId).to.have.lengthOf(13);
})
it('should generate an invalid rsa id', function() {
var invalidIdNumber = fakeSaIdGenerator.generateInvalidFakeId();
var isValid = saIdParser.validate(invalidIdNumber);
expect(isValid).to.be.equal(false);
})
})
context('generateFakeIdByAge', function() {
it('should generate 13 digit rsa id by input age', function() {
var age = 27;
var fakeId = fakeSaIdGenerator.generateFakeIdByAge(age)
var idYear = moment(fakeId.substring(0, 7), "YYMMDD").year();
var currentYear = moment().year();
expect(fakeId).to.be.an('string').that.includes(8);
expect(fakeId).to.have.lengthOf(13);
expect(currentYear - idYear).to.be.equal(age);
})
it('should generate a valid rsa id', function() {
var age = 27;
var fakeId = fakeSaIdGenerator.generateFakeIdByAge(age)
var isValid = saIdParser.validate(fakeId);
expect(isValid).to.be.equal(true);
})
})
context('generateInvalidFakeIdByAge', function() {
it('should generate a 13 digit rsa id by input age', function() {
var age = 27;
var fakeId = fakeSaIdGenerator.generateInvalidFakeIdByAge(age)
var idYear = moment(fakeId.substring(0, 7), "YYMMDD").year();
var currentYear = moment().year();
expect(fakeId).to.be.an('string').that.includes(8);
expect(fakeId).to.have.lengthOf(13);
expect(currentYear - idYear).to.be.equal(age);
})
it('should generate an invalid rsa id', function() {
var age = 27;
var fakeId = fakeSaIdGenerator.generateInvalidFakeIdByAge(age)
var isValid = saIdParser.validate(fakeId);
expect(isValid).to.be.equal(false);
})
})
context('isValid', function() {
it('should validate id number', function() {
expect(fakeSaIdGenerator.isValid("9701286633088")).to.be.equal(false);
})
})
})