]> gerrit.simantics Code Review - simantics/district.git/blobdiff - org.simantics.maps.server/node/node-v4.8.0-win-x64/node_modules/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/test/test.js
Adding integrated tile server
[simantics/district.git] / org.simantics.maps.server / node / node-v4.8.0-win-x64 / node_modules / npm / node_modules / read-package-json / node_modules / json-parse-helpfulerror / test / test.js
diff --git a/org.simantics.maps.server/node/node-v4.8.0-win-x64/node_modules/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/test/test.js b/org.simantics.maps.server/node/node-v4.8.0-win-x64/node_modules/npm/node_modules/read-package-json/node_modules/json-parse-helpfulerror/test/test.js
new file mode 100644 (file)
index 0000000..fca458a
--- /dev/null
@@ -0,0 +1,32 @@
+var Code = require('code'),
+    Lab = require('lab'),
+    lab = Lab.script(),
+    jph = require('..'); // 'json-parse-helpfulerror'
+
+exports.lab = lab;
+
+lab.test('can parse', function (done) {
+  var o = jph.parse('{"foo": "bar"}');
+
+  Code.expect(o.foo).to.equal('bar');
+  done();
+});
+
+lab.test('helpful error for bad JSON', function (done) {
+
+  var bad = "{'foo': 'bar'}";
+
+  Code.expect(function () { JSON.parse(bad) }).to.throw();
+
+  Code.expect(function () { jph.parse(bad) }).to.throw(SyntaxError, "Unexpected token '\\'' at 1:2\n" + bad + '\n ^');
+
+  done();
+});
+
+lab.test('fails if reviver throws', function (done) {
+  function badReviver() { throw new ReferenceError('silly'); }
+
+  Code.expect(function () { jph.parse('3', badReviver) }).to.throw(ReferenceError, 'silly');
+
+  done();
+});
\ No newline at end of file