Skip to content

Commit d34c4ae

Browse files
committed
test(json-pack): 💍 add deterministic JSON encoder map key sorting test
[skip ci]
1 parent 25416ba commit d34c4ae

File tree

1 file changed

+10
-0
lines changed

1 file changed

+10
-0
lines changed

src/json-pack/json/__tests__/JsonEncoderDag.spec.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,16 @@ import {JsonEncoderDag} from '../JsonEncoderDag';
55
const writer = new Writer(16);
66
const encoder = new JsonEncoderDag(writer);
77

8+
describe('object', () => {
9+
test('shorter and smaller keys are sorted earlier', () => {
10+
const json = '{"aaaaaa":6,"aaaaab":7,"aaaaac":8,"aaaabb":9,"bbbbb":5,"cccc":4,"ddd":3,"ee":2,"f":1}';
11+
const data = JSON.parse(json);
12+
const encoded = encoder.encode(data);
13+
const json2 = Buffer.from(encoded).toString();
14+
expect(json2).toBe('{"f":1,"ee":2,"ddd":3,"cccc":4,"bbbbb":5,"aaaaaa":6,"aaaaab":7,"aaaaac":8,"aaaabb":9}');
15+
});
16+
});
17+
818
describe('Bytes', () => {
919
test('can encode a simple buffer in object', () => {
1020
const buf = utf8`hello world`;

0 commit comments

Comments
 (0)