UNPKG

apidoc

Version:

RESTful web API Documentation Generator

79 lines (65 loc) 2.32 kB
/** * Test: apidoc.js */ // Node Module var should = require("should"); var fs = require("fs"); var sys = require("sys"); var exec = require("child_process").exec; /* -------------------------------------------------------------------------------- * Tests * -------------------------------------------------------------------------------- */ describe("apiDoc", function() { var fixtureFiles = [ "api_data.js", "api_data.json", "api_project.js", "api_project.json", "index.html" ]; before(function(done) { done(); }); after(function(done) { done(); }); // create it("case 1: should create example in tmp/", function(done) { exec("node ./bin/apidoc -i test/fixtures/example/ -o tmp/ -t test/template/", function(err, stdout, stderr) { if(err) throw err; if(stderr) throw stderr; done(); }); }); // it // check it("case 1: should find created files", function(done) { fixtureFiles.forEach(function(name) { fs.existsSync("./tmp/" + name).should.eql(true); }); done(); }); // it // compare it("case 1: created files should equal to fixtures", function(done) { var timeRegExp = /"time"\:\s"(.*)"/g; var versionRegExp = /"version"\:\s"(.*)"/g; fixtureFiles.forEach(function(name) { var fixtureContent = fs.readFileSync("test/fixtures/" + name, "utf8"); var createdContent = fs.readFileSync("./tmp/" + name, "utf8"); // creation time remove (never equal) fixtureContent = fixtureContent.replace(timeRegExp, ""); createdContent = createdContent.replace(timeRegExp, ""); // creation time remove (or fixtures must be updated every time the version change) fixtureContent = fixtureContent.replace(versionRegExp, ""); createdContent = createdContent.replace(versionRegExp, ""); var fixtureLines = fixtureContent.split(/\r\n/); var createdLines = createdContent.split(/\r\n/); if (fixtureLines.length !== createdLines.length) throw new Error("File ./tmp/" + name + " not equals to test/fixutres/" + name); for (var lineNumber = 0; lineNumber < fixtureLines.length; lineNumber += 1) { if (fixtureLines[lineNumber] !== createdLines[lineNumber]) throw new Error("File ./tmp/" + name + " not equals to test/fixutres/" + name + " in line " + (lineNumber + 1)); } // for }); done(); }); // it }); // describe