You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

34 lines
1.2 KiB

4 years ago
  1. var mocha = require('mocha')
  2. , assert = require('chai').assert
  3. , expect = require('chai').expect
  4. ;
  5. describe("Testing 'strict' option", function(){
  6. var dupkeys = '{ "dupkey": "value 1", "dupkey": "value 2"}';
  7. it("Should show that duplicate keys just get overwritten by default", function(done){
  8. var JSONbig = require('../index');
  9. var result = "before";
  10. function tryParse() {
  11. result = JSONbig.parse(dupkeys);
  12. }
  13. expect(tryParse).to.not.throw("anything");
  14. expect(result.dupkey).to.equal("value 2");
  15. done();
  16. });
  17. it("Should show that the 'strict' option will fail-fast on duplicate keys", function(done){
  18. var JSONstrict = require('../index')({"strict": true});
  19. var result = "before";
  20. function tryParse() {
  21. result = JSONstrict.parse(dupkeys);
  22. }
  23. expect(tryParse).to.throw({
  24. name: 'SyntaxError',
  25. message: 'Duplicate key "dupkey"',
  26. at: 33,
  27. text: '{ "dupkey": "value 1", "dupkey": "value 2"}'
  28. });
  29. expect(result).to.equal("before");
  30. done();
  31. });
  32. });