versification
Version:
A library for parsing Paratext's vrs files.
58 lines (47 loc) • 1.78 kB
text/typescript
import {expect} from 'chai';
import * as canon from '../src/Canon'
describe('Canon', () =>
{
describe('bookIdToNumber', () =>
{
it('bookIdToNumber - valid ids', () =>
{
expect(canon.bookIdToNumber('GEN')).to.be.equal(1);
expect(canon.bookIdToNumber('EXO')).to.be.equal(2);
expect(canon.bookIdToNumber('MAT')).to.be.equal(40);
});
it('bookIdToNumber - valid ids, but not uppercase', () =>
{
expect(canon.bookIdToNumber('gen')).to.be.equal(1);
expect(canon.bookIdToNumber('eXO')).to.be.equal(2);
expect(canon.bookIdToNumber('Mat')).to.be.equal(40);
});
it('bookIdToNumber - invalid ids', () =>
{
expect(canon.bookIdToNumber('ABC')).to.be.undefined;
expect(canon.bookIdToNumber('DEF')).to.be.undefined;
// @ts-ignore
expect(canon.bookIdToNumber(null)).to.be.undefined;
});
it('non canonical', () =>
{
expect(canon.bookIdToNumber('GLO')).to.be.equal(109);
});
});
describe('bookNumberToId', () =>
{
it('bookNumberToId - valid number', () =>
{
expect(canon.bookNumberToId(1)).to.be.equal('GEN');
expect(canon.bookNumberToId(2)).to.be.equal('EXO');
expect(canon.bookNumberToId(40)).to.be.equal('MAT');
});
it('bookNumberToId - invalid number', () =>
{
expect(canon.bookNumberToId(-1)).to.be.undefined;
expect(canon.bookNumberToId(999999)).to.be.undefined;
// @ts-ignore
expect(canon.bookNumberToId(null)).to.be.undefined;
});
});
});