UNPKG

qrloop

Version:

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

72 lines 3.59 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const __1 = require(".."); test("empty data", () => { const str = ""; const framesExport = (0, __1.dataToFrames)(str); const framesImport = framesExport.reduce(__1.parseFramesReducer, undefined); expect((0, __1.areFramesComplete)(framesImport)).toBe(true); expect((0, __1.progressOfFrames)(framesImport)).toBe(1); expect((0, __1.currentNumberOfFrames)(framesImport)).toBe((0, __1.totalNumberOfFrames)(framesImport)); expect((0, __1.framesToData)(framesImport).toString()).toBe(str); }); test("'hello world'", () => { const str = "hello world"; const framesExport = (0, __1.dataToFrames)(str); const framesImport = framesExport.reduce(__1.parseFramesReducer, undefined); expect((0, __1.areFramesComplete)(framesImport)).toBe(true); expect((0, __1.progressOfFrames)(framesImport)).toBe(1); expect((0, __1.currentNumberOfFrames)(framesImport)).toBe((0, __1.totalNumberOfFrames)(framesImport)); expect((0, __1.framesToData)(framesImport).toString()).toBe(str); }); test("'hello world' x1000", () => { let str = Array(1000).fill("hello world").join(" "); const framesExport = (0, __1.dataToFrames)(Buffer.from(str), 50); let framesImport = null; let frameLength = -1; let frameCompleteReached = false; let frameProgress = 0; for (let i = 0; i < framesExport.length; i++) { expect((0, __1.progressOfFrames)(framesImport)).toBeGreaterThanOrEqual(frameProgress); frameProgress = (0, __1.progressOfFrames)(framesImport); expect(frameProgress).toBeGreaterThanOrEqual(0); expect(frameProgress).toBeLessThanOrEqual(1); if ((0, __1.areFramesComplete)(framesImport)) { frameCompleteReached = true; } else { expect(frameCompleteReached).toBe(false); // never go back to uncomplete } framesImport = (0, __1.parseFramesReducer)(framesImport, framesExport[i]); if (frameLength === -1) frameLength = (0, __1.totalNumberOfFrames)(framesImport); expect((0, __1.totalNumberOfFrames)(framesImport)).toBe(frameLength); } expect((0, __1.areFramesComplete)(framesImport)).toBe(true); expect((0, __1.progressOfFrames)(framesImport)).toBe(1); expect((0, __1.currentNumberOfFrames)(framesImport)).toBe((0, __1.totalNumberOfFrames)(framesImport)); expect((0, __1.framesToData)(framesImport).toString()).toBe(str); }); test("binary", () => { const data = Buffer.from(Array(10000) .fill(null) .map((_, i) => i % 256)); const framesExport = (0, __1.dataToFrames)(data, 200); expect(framesExport).toMatchSnapshot(); const framesImport = framesExport.reduce(__1.parseFramesReducer, undefined); expect((0, __1.areFramesComplete)(framesImport)).toBe(true); expect((0, __1.progressOfFrames)(framesImport)).toBe(1); expect((0, __1.currentNumberOfFrames)(framesImport)).toBe((0, __1.totalNumberOfFrames)(framesImport)); expect((0, __1.framesToData)(framesImport).toString("hex")).toBe(data.toString("hex")); }); test("binary test many size", () => { for (let i = 0; i < 2000; i++) { const data = Buffer.from(Array(i) .fill(null) .map((_, i) => i % 256)); const framesExport = (0, __1.dataToFrames)(data, 200); const framesImport = framesExport.reduce(__1.parseFramesReducer, undefined); expect((0, __1.framesToData)(framesImport).toString("hex")).toBe(data.toString("hex")); } }); //# sourceMappingURL=basic.js.map