Built motion from commit 6a09e18b.|2.6.11
[motion2.git] / legacy-libs / json-bigint / test / strict-option-test.js
diff --git a/legacy-libs/json-bigint/test/strict-option-test.js b/legacy-libs/json-bigint/test/strict-option-test.js
new file mode 100644 (file)
index 0000000..bb27bd9
--- /dev/null
@@ -0,0 +1,34 @@
+var mocha  = require('mocha')
+  , assert = require('chai').assert
+  , expect = require('chai').expect
+  ;
+
+describe("Testing 'strict' option", function(){
+    var dupkeys = '{ "dupkey": "value 1", "dupkey": "value 2"}';
+    it("Should show that duplicate keys just get overwritten by default", function(done){
+        var JSONbig = require('../index');
+        var result = "before";
+        function tryParse() {
+            result = JSONbig.parse(dupkeys);
+        }
+        expect(tryParse).to.not.throw("anything");
+        expect(result.dupkey).to.equal("value 2");
+        done();
+    });
+
+    it("Should show that the 'strict' option will fail-fast on duplicate keys", function(done){
+        var JSONstrict = require('../index')({"strict": true});
+        var result = "before";
+        function tryParse() {
+            result = JSONstrict.parse(dupkeys);
+        }
+        expect(tryParse).to.throw({ 
+            name: 'SyntaxError',
+            message: 'Duplicate key "dupkey"',
+            at: 33,
+            text: '{ "dupkey": "value 1", "dupkey": "value 2"}' 
+        });
+        expect(result).to.equal("before");
+        done();
+    });
+});