UNPKG

qrloop

Version:

Envelop big blob of data into frames that can be displayed in series of QR Codes

41 lines 2.05 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const __1 = require(".."); test("premature framesToData should throw", () => { expect(() => (0, __1.framesToData)()).toThrow(); expect(() => (0, __1.framesToData)(null)).toThrow(); const data = Buffer.from(Array(1000) .fill(null) .map((_, i) => i % 256)); const framesExport = (0, __1.dataToFrames)(data, 200); expect(framesExport.length).toBeGreaterThan(2); const framesImport = (0, __1.parseFramesReducer)((0, __1.parseFramesReducer)(null, framesExport[0]), framesExport[1]); expect((0, __1.areFramesComplete)(framesImport)).toBe(false); expect((0, __1.currentNumberOfFrames)(framesImport)).toBeLessThan((0, __1.totalNumberOfFrames)(framesImport) || -1); expect(() => (0, __1.framesToData)(framesImport)).toThrow(); }); test("corrupted data through framesToData should throw", () => { const data = Buffer.from(Array(1000) .fill(null) .map((_, i) => i % 256)); const framesExport = (0, __1.dataToFrames)(data, 200); const framesImport = framesExport.reduce(__1.parseFramesReducer, null); if (!framesImport) throw new Error("falsy framesImport"); framesImport.frames[1].data[10]++; // corrupt one bit of the second frame expect(() => (0, __1.framesToData)(framesImport)).toThrow(); }); test("corrupted data can be recoverable", () => { const data = Buffer.from(Array(1000) .fill(null) .map((_, i) => i % 256)); const framesExport = (0, __1.dataToFrames)(data, 200); const framesImport = framesExport.reduce(__1.parseFramesReducer, null); if (!framesImport) throw new Error("falsy framesImport"); framesImport.frames[1].data[10]++; // corrupt one bit of the second frame expect(() => (0, __1.framesToData)(framesImport)).toThrow(); const framesImport2 = framesExport.reduce(__1.parseFramesReducer, framesImport); expect((0, __1.framesToData)(framesImport2)).toMatchObject(data); }); //# sourceMappingURL=errors.js.map