Added simple unit tests for ghostdown extensions

(RE: discussion in pull #317)

-   Unit tests enforce well formedness of ghostdown processor function
    and what it returns.
-   Ensures image markup is recognised and replaced accurately.
This commit is contained in:
Christopher Giffard 2013-08-01 16:04:42 +10:00
parent 09ada68d9b
commit d72dab071c

View File

@ -0,0 +1,38 @@
/*globals describe, it */
var gdPath = "../../client/assets/vendor/showdown/extensions/ghostdown.js",
should = require('should'),
ghostdown = require(gdPath);
describe("Ghostdown showdown extensions", function () {
it("should export an array of methods for processing", function () {
ghostdown.should.be.a("function");
ghostdown().should.be.an.instanceof(Array);
ghostdown().forEach(function (processor) {
processor.should.be.a("object");
processor.should.have.property("type");
processor.should.have.property("filter");
processor.type.should.be.a("string");
processor.filter.should.be.a("function");
});
});
it("should accurately detect images in markdown", function () {
[ "!image[image and another,/ image](http://dsurl stuff)",
"![image and another,/ image]",
"![]()",
"![]" ]
.forEach(function (imageMarkup) {
var processedMarkup =
ghostdown().reduce(function(prev,processor) {
return processor.filter(prev);
},imageMarkup);
// The image is the entire markup, so the image box should be too
processedMarkup.should.match(/^<section.*?section>\n*$/);
});
});
});