UNPKG

@akamfoad/qrcode

Version:

The library is generating QR codes as SVG, HTML5 Canvas, PNG and JPG files, or text.

85 lines (78 loc) 2.98 kB
import { describe, expect, it, vi } from 'vitest'; import QRCodeText from '../QRCodeText'; describe('QRCodeText', () => { describe('constructor', () => { it('should use default params if nothing is provided', () => { // @ts-expect-error testing undefined case const qrCode = new QRCodeText(); expect(qrCode.value).toBeUndefined(); expect(qrCode.padding).toEqual(1); expect(qrCode.level).toEqual('L'); expect(qrCode.typeNumber).toEqual(0); expect(qrCode.errorsEnabled).toBeFalsy(); expect(qrCode.invert).toBeFalsy(); expect(qrCode.blackSymbol).toEqual('▓▓'); expect(qrCode.whiteSymbol).toEqual(' '); }); it('should default params for not specified params', () => { const qrCode = new QRCodeText('test 42', { level: 'Q' }); expect(qrCode.value).toEqual('test 42'); expect(qrCode.padding).toEqual(1); expect(qrCode.level).toEqual('Q'); expect(qrCode.typeNumber).toEqual(0); expect(qrCode.errorsEnabled).toBeFalsy(); expect(qrCode.invert).toBeFalsy(); expect(qrCode.blackSymbol).toEqual('▓▓'); expect(qrCode.whiteSymbol).toEqual(' '); }); it('should use specified params', () => { const qrCode = new QRCodeText('test 84', { level: 'H', padding: 0, typeNumber: 20, invert: true, errorsEnabled: true, blackSymbol: '1', whiteSymbol: '0', }); expect(qrCode.value).toEqual('test 84'); expect(qrCode.padding).toEqual(0); expect(qrCode.level).toEqual('H'); expect(qrCode.typeNumber).toEqual(20); expect(qrCode.errorsEnabled).toBeTruthy(); expect(qrCode.invert).toBeTruthy(); expect(qrCode.blackSymbol).toEqual('1'); expect(qrCode.whiteSymbol).toEqual('0'); }); }); describe('_clearCache', () => { it('should clear qrCodeData and qrCodeText', () => { const qrCode = new QRCodeText('test'); qrCode.qrCodeData = [[false], [true], [true], [false]]; qrCode.qrCodeText = '1-2-3-4'; qrCode._clearCache(); expect(qrCode.qrCodeData).toBeNull(); expect(qrCode.qrCodeText).toBeNull(); }); }); describe('toString', () => { it('should return null if qrCodeData is empty', () => { const qrCode = new QRCodeText('test'); qrCode.getData = vi.fn(() => null); expect(qrCode.toString()).toBeNull(); }); it('should return text QR code', () => { const qrCode = new QRCodeText('test'); qrCode.getData = vi.fn(() => [ [true, true, true, true, true], [true, false, false, false, true], [true, false, true, false, true], [true, false, false, false, true], [true, true, true, true, true], ]); expect(qrCode.toString()).toEqual( '▓▓▓▓▓▓▓▓▓▓\n▓▓ ▓▓\n▓▓ ▓▓ ▓▓\n▓▓ ▓▓\n▓▓▓▓▓▓▓▓▓▓\n', ); }); }); });