bridge-node-server/node_server/utils/specs/anon.spec.js

58 lines
2.4 KiB
JavaScript
Raw Normal View History

2018-06-24 20:15:03 +00:00
/**
* Unit testing file for anon
*/
'use strict';
/* eslint max-nested-callbacks: ["error", 7] */
// eslint-disable-next-line no-unused-vars
const testGlobals = require('../../tools/test/testGlobals.js');
const chai = require('chai');
const sinonChai = require('sinon-chai');
const rewire = require('rewire');
/**
* Use `rewire` instead of require so that we can access private functions for test
*/
const anon = rewire('../anon.js');
const expect = chai.expect;
chai.use(sinonChai);
describe('anon functions', () => {
describe('call anonymiseWorldpayService', () => {
it('anonymises a standard serviceKey', () => {
const result = anon.anonymiseWorldpayServiceKey('T_S_713d2a60-a20b-4047-bc3a-3e863a11e414');
return expect(result).to.deep.equal('T_S_********-****-****-****-********e414');
});
it('throws when service key is not set', () => {
return expect(() => anon.anonymiseWorldpayServiceKey(undefined)).to.throw('service key not set');
});
it('throws when service key is not a valid worldpay service key (invalid patttern)', () => {
return expect(() => anon.anonymiseWorldpayServiceKey('T_A_713d2a60-a20b-4047-bc3a-3e863a11e414')).to.throw('service key not consistent with a Worldpay service key');
});
it('throws when service key is not a valid worldpay service key (to short)', () => {
return expect(() => anon.anonymiseWorldpayServiceKey('T_S_713d2a60-a20b-4047-bc3a')).to.throw('service key not consistent with a Worldpay service key');
});
});
describe('call anonymiseCardPAN', () => {
it('anonymises a standard cardPAN', () => {
const result = anon.anonymiseCardPAN('0000111122223333');
return expect(result).to.deep.equal('0*** **** **** *333');
});
it('anonymises a standard cardPAN with spaces', () => {
const result = anon.anonymiseCardPAN('0000 1111 2222 3333');
return expect(result).to.deep.equal('0*** **** **** *333');
});
it('anonymises a short cardPAN', () => {
const result = anon.anonymiseCardPAN('0000');
return expect(result).to.deep.equal('0000');
});
it('throws when card PAN is not set', () => {
return expect(() => anon.anonymiseCardPAN(undefined)).to.throw('cardPAN not set');
});
});
});