node-qrcode-lite/test/unit/core/alphanumeric-data.test.js
2020-04-16 22:50:11 +01:00

41 lines
1 KiB
JavaScript

const test = require('tap').test
const BitBuffer = require('core/bit-buffer')
const AlphanumericData = require('core/alphanumeric-data')
const Mode = require('core/mode')
const testData = [
{
data: 'A',
length: 1,
bitLength: 6,
dataBit: [40]
},
{
data: 'AB',
length: 2,
bitLength: 11,
dataBit: [57, 160]
},
{
data: 'ABC12',
length: 5,
bitLength: 28,
dataBit: [57, 168, 116, 32]
}
]
test('Alphanumeric Data', function (t) {
testData.forEach(function (data) {
const alphanumericData = new AlphanumericData(data.data)
t.equal(alphanumericData.mode, Mode.ALPHANUMERIC, 'Mode should be ALPHANUMERIC')
t.equal(alphanumericData.getLength(), data.length, 'Should return correct length')
t.equal(alphanumericData.getBitsLength(), data.bitLength, 'Should return correct bit length')
const bitBuffer = new BitBuffer()
alphanumericData.write(bitBuffer)
t.deepEqual(bitBuffer.buffer, data.dataBit, 'Should write correct data to buffer')
})
t.end()
})