Built motion from commit 6a09e18b.|2.6.11
[motion2.git] / legacy-libs / json-bigint / test / bigint-test.js
1 var mocha  = require('mocha')
2   , assert = require('chai').assert
3   , expect = require('chai').expect
4   , BigNumber = require('bignumber.js')
5   ;
6
7 describe("Testing bigint support", function(){
8     var input = '{"big":9223372036854775807,"small":123}';
9
10     it("Should show classic JSON.parse lacks bigint support", function(done){
11         var obj = JSON.parse(input);
12         expect(obj.small.toString(), "string from small int").to.equal("123");
13         expect(obj.big.toString(), "string from big int").to.not.equal("9223372036854775807");
14
15         var output = JSON.stringify(obj);
16         expect(output).to.not.equal(input);
17         done();
18     });
19
20     it("Should show JSNbig does support bigint parse/stringify roundtrip", function(done){
21         var JSONbig = require('../index');
22         var obj = JSONbig.parse(input);
23         expect(obj.small.toString(), "string from small int").to.equal("123");
24         expect(obj.big.toString(), "string from big int").to.equal("9223372036854775807");
25         expect(obj.big, "instanceof big int").to.be.instanceof(BigNumber);
26
27         var output = JSONbig.stringify(obj);
28         expect(output).to.equal(input);
29         done();
30     });
31 });