kopia lustrzana https://github.com/c9/core
75 wiersze
2.0 KiB
JavaScript
75 wiersze
2.0 KiB
JavaScript
"use strict";
|
|
"use server";
|
|
|
|
require("c9/inline-mocha")(module);
|
|
|
|
var assert = require("assert");
|
|
var json = require("./load-json");
|
|
var fs = require("fs");
|
|
|
|
describe("parse", function() {
|
|
it("parses valid json", function(done) {
|
|
var input = {
|
|
hello: ["world"]
|
|
};
|
|
|
|
json.parse(JSON.stringify(input), function(err, parsed) {
|
|
assert.ok(!err, "No error: " + err);
|
|
assert.deepEqual(parsed, input);
|
|
done();
|
|
});
|
|
});
|
|
|
|
it("gives an error when input is not valid json", function(done) {
|
|
json.parse("!@$%", function(err) {
|
|
assert.ok(err, "Returned an error");
|
|
assert.ok(err.toString(), "SyntaxError: Unexpected token !");
|
|
done();
|
|
});
|
|
});
|
|
});
|
|
|
|
describe("load", function() {
|
|
function writetmp(data) {
|
|
var path = ["/tmp/tmpfile", Date.now().toString(36), (Math.random() * 10e16).toString(36)].join("-");
|
|
fs.writeFileSync(path, data);
|
|
return path;
|
|
}
|
|
|
|
|
|
it("returns an error if does not exist", function(done) {
|
|
json.load("doesnotexsit", function(err) {
|
|
assert.ok(err, "Returned an error");
|
|
assert.equal(err.toString(), "Error: ENOENT: no such file or directory, open 'doesnotexsit'");
|
|
done();
|
|
});
|
|
});
|
|
|
|
it("loads and parses a given file", function(done) {
|
|
var input = {
|
|
hello: ["world"]
|
|
};
|
|
|
|
var tmpfile = writetmp(JSON.stringify(input));
|
|
|
|
json.load(tmpfile, function(err, result) {
|
|
assert.ok(!err, "no err: " + err);
|
|
assert.deepEqual(result, input);
|
|
fs.unlinkSync(tmpfile);
|
|
done();
|
|
});
|
|
|
|
});
|
|
|
|
it("returns error if the file contains bad json", function(done) {
|
|
var tmpfile = writetmp("!@#$");
|
|
|
|
json.load(tmpfile, function(err, result) {
|
|
assert.ok(err, "Returned an error");
|
|
assert.ok(err.toString(), "SyntaxError: Unexpected token !");
|
|
fs.unlinkSync(tmpfile);
|
|
done();
|
|
});
|
|
});
|
|
});
|