UNPKG

cbor-sync

Version:

CBOR encode/decode (synchronous, semantic, browser-compatible)

30 lines (27 loc) 1.32 kB
var assert = require('chai').assert; var api = require('../../main.js'); describe('Objects:', function () { // From: https://tools.ietf.org/html/rfc7049#appendix-A var examples = [ {data: {}, encoded: Buffer.from('a0', 'hex'), symmetric: true}, {data: {"a": 1, "b": [2, 3]}, encoded: Buffer.from('a26161016162820203', 'hex'), symmetric: true}, {data: ["a", {"b": "c"}], encoded: Buffer.from('826161a161626163', 'hex'), symmetric: true}, {data: {"a": "A", "b": "B", "c": "C", "d": "D", "e": "E"}, encoded: Buffer.from('a56161614161626142616361436164614461656145', 'hex'), symmetric: true}, // Variable-length objects {data: {"a": 1, "b": [2, 3]}, encoded: Buffer.from('bf61610161629f0203ffff', 'hex'), symmetric: false}, {data: ["a", {"b": "c"}], encoded: Buffer.from('826161bf61626163ff', 'hex'), symmetric: false}, {data: {"Fun": true, "Amt": -2}, encoded: Buffer.from('bf6346756ef563416d7421ff', 'hex'), symmetric: false}, ]; examples.forEach(function (example, index) { it('Example ' + index, function () { var decoded = api.decode(example.encoded); assert.deepEqual(decoded, example.data); }) if (example.symmetric) { it('Example ' + index + " (encode)", function () { var encoded = api.encode(example.data); assert.deepEqual(encoded, example.encoded); }) } }) });