var fs = require("fs"); var _ = require("lodash"); var path = require("path"); var cheerio = require("cheerio"); describe("Images", function () { var book, readme, $, $img, srcs; before(function() { return books.generate("images", "ebook") .then(function(_book) { book = _book; readme = fs.readFileSync( path.join(book.options.output, "index.html"), { encoding: "utf-8" } ); $ = cheerio.load(readme); $img = $("img"); srcs = $img.map(function() { return $(this).attr("src"); }); }); }); it("should detect all images", function() { _.uniq(srcs).should.have.lengthOf(4); }); it("should keep image tags", function() { srcs.should.have.lengthOf(5); }); it("should not have .svg files", function() { _.each(srcs, function(src) { path.extname(src).should.not.equal(".svg"); }); }); it("should correctly convert svg images to png", function() { _.each(srcs, function(src) { book.should.have.file(src); }); }); it("should handle relative paths", function() { var PAGE = fs.readFileSync( path.join(book.options.output, "folder/PAGE.html"), { encoding: "utf-8" } ); PAGE.should.be.html({ "img[src=\"../test.png\"]": { count: 1 } }); }); });