UNPKG

binary-data

Version:

Declarative binary data encoder / decoder.

1 lines 5.4 kB
{"version":3,"sources":["transaction.js"],"names":["BinaryStream","require","Transaction","NotEnoughDataError","test","stream","buffer","writeUInt8","writeUInt16BE","writeUInt32BE","size","length","bytes","transaction","expect","toEqual","readUInt8","readUInt16BE","readUInt32BE","commit","append","Buffer","from","indexOf","toBe","readBuffer","get","slice","toString","readUIntBE","toThrowError","alloc"],"mappings":"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","file":"transaction.js","sourcesContent":["'use strict';\n\nconst BinaryStream = require('lib/binary-stream');\nconst Transaction = require('lib/transaction');\nconst NotEnoughDataError = require('lib/not-enough-data-error');\n\ntest('shoud work', () => {\n const stream = new BinaryStream();\n\n stream.buffer.writeUInt8(10);\n stream.buffer.writeUInt16BE(111);\n stream.buffer.writeUInt32BE(1e5);\n\n const size = stream.length;\n const bytes = 1 + 2 + 4;\n\n const transaction = new Transaction(stream);\n expect(transaction.length).toEqual(size);\n\n expect(transaction.readUInt8()).toEqual(10);\n expect(transaction.readUInt16BE()).toEqual(111);\n expect(transaction.readUInt32BE()).toEqual(1e5);\n\n expect(stream.length).toEqual(size);\n expect(transaction.length).toEqual(size);\n\n transaction.commit();\n expect(stream.length).toEqual(size - bytes);\n});\n\ntest('should read buffer', () => {\n const stream = new BinaryStream();\n const transaction = new Transaction(stream);\n\n stream.append(Buffer.from([1, 2, 3, 4]));\n stream.append(Buffer.from([1, 2, 3, 4, 9]));\n\n const size = stream.length;\n expect(transaction.length).toEqual(size);\n\n expect(transaction.indexOf(3)).toBe(2);\n expect(transaction.readBuffer(3)).toEqual(Buffer.from([1, 2, 3]));\n expect(transaction.get(0)).toEqual(4);\n expect(transaction.indexOf(3)).toBe(3);\n expect(transaction.readBuffer(5)).toEqual(Buffer.from([4, 1, 2, 3, 4]));\n\n expect(stream.length).toEqual(size);\n expect(transaction.length).toEqual(size);\n\n transaction.commit();\n expect(stream.length).toEqual(size - 8);\n});\n\ntest('should have `bl` methods', () => {\n const stream = new BinaryStream();\n const transaction = new Transaction(stream);\n const buffer = Buffer.from([1, 2, 3, 4]);\n\n transaction.append(buffer);\n expect(stream.length).toEqual(buffer.length);\n\n expect(transaction.slice(0, 2)).toEqual(buffer.slice(0, 2));\n expect(transaction.toString('hex')).toEqual(buffer.toString('hex'));\n});\n\ntest('should emit NotEnoughDataError', () => {\n const stream = new BinaryStream();\n const transaction = new Transaction(stream);\n\n expect(() => transaction.readUIntBE(2)).toThrowError(NotEnoughDataError);\n\n transaction.append(Buffer.alloc(2));\n expect(() => transaction.readBuffer(3)).toThrowError(NotEnoughDataError);\n});\n"]}