Merge pull request #558 from rafael-atticlabs/asyncDecodingTest

(js) Add test for correct async decoding
This commit is contained in:
Rafael Weinstein
2015-11-04 08:22:54 -08:00
+24 -1
View File
@@ -103,7 +103,7 @@ suite('Decode', () => {
assert.strictEqual(expected.size, actual.size);
expected.forEach((v, k) => {
assert.isTrue(actual.has(k));
assert.strictEqual(v, actual.get(k));
assert.deepEqual(v, actual.get(k));
});
}
@@ -182,6 +182,29 @@ suite('Decode', () => {
assert.deepEqual({x: 42, s: 'hi', b: true, _typeRef: tr}, v);
});
test('test read map of string to struct', async () => {
let ms = new MemoryStore();
let tr = makeStructTypeRef('s', [
new Field('b', makePrimitiveTypeRef(Kind.Bool), false),
new Field('i', makePrimitiveTypeRef(Kind.Int32), false)
], []);
let pkg = new Package([tr], []);
registerPackage(pkg);
let a = [Kind.Value, Kind.Map, Kind.String, Kind.Unresolved, pkg.ref.toString(), 0, ['foo', true, 3, 'bar', false, 2, 'baz', false, 1]];
let r = new JsonArrayReader(a, ms);
let v = await r.readTopLevelValue();
let m = new Map();
m.set('foo', {b: true, i: 3, _typeRef: tr});
m.set('bar', {b: false, i: 2, _typeRef: tr});
m.set('baz', {b: false, i: 1, _typeRef: tr});
assertMapsEqual(m, v);
});
test('decodeNomsValue', async () => {
let chunk = Chunk.fromString(`t [${Kind.Value}, ${Kind.Set}, ${Kind.UInt16}, [0, 1, 2, 3]]`);
let v = await decodeNomsValue(chunk, new MemoryStore());