From 288a696584b6b965c491e0c7d0d4e56a4f7f0e74 Mon Sep 17 00:00:00 2001 From: Luke Page Date: Thu, 6 Aug 2015 13:08:58 +0100 Subject: [PATCH] Tap ftw --- package.json | 8 ++-- test/convert-images-spec.js | 88 ++++++++++++++++++++++++++++++++++ test/convert-images.js | 95 ------------------------------------- test/index.js | 3 -- 4 files changed, 93 insertions(+), 101 deletions(-) create mode 100644 test/convert-images-spec.js delete mode 100644 test/convert-images.js delete mode 100644 test/index.js diff --git a/package.json b/package.json index a1f5ec6..6ce6992 100644 --- a/package.json +++ b/package.json @@ -32,9 +32,9 @@ "example": "examples" }, "scripts": { - "coverage": "istanbul -- cover ./test nolarge", + "coverage": "istanbul -- cover node_modules/tape/bin/tape test/*-spec.js nolarge", "coverage-report": "npm run coverage && istanbul report html", - "test": "node test", + "test": "tape test/*-spec.js nolarge | tap-dot && node test/run-compare", "lint": "eslint lib" }, "repository": { @@ -51,6 +51,8 @@ "eslint": "^1.0.0", "istanbul": "^0.3.17", "phantomjs": "^1.9.17", - "serve-static": "^1.10.0" + "serve-static": "^1.10.0", + "tap-dot": "^1.0.0", + "tape": "^4.0.2" } } diff --git a/test/convert-images-spec.js b/test/convert-images-spec.js new file mode 100644 index 0000000..6fbc1c3 --- /dev/null +++ b/test/convert-images-spec.js @@ -0,0 +1,88 @@ + +var fs = require('fs'); +var PNG = require('../lib/png').PNG; +var test = require('tape'); + +fs.readdir(__dirname + '/in/', function (err, files) { + if (err) throw err; + + files = files.filter(function(file) { + return ((process.argv[3] || "").indexOf("nolarge") < 0 || !file.match(/large/i)) && Boolean(file.match(/\.png$/i)); + }); + + console.log("Converting images"); + + files.forEach(function (file) { + + var expectedError = false; + if (file.match(/^x/)) { + expectedError = true; + } + + test('convert sync - ' + file, function(t) { + + if (file.match(/large/)) { + t.timeoutAfter(1000 * 60); + } else { + t.timeoutAfter(1000); + } + + var data = fs.readFileSync(__dirname + '/in/' + file); + try { + var png = PNG.sync.read(data); + } catch (e) { + if (!expectedError) { + t.fail('Unexpected error parsing..' + file + '\n' + e.message + "\n" + e.stack); + } else { + t.pass("completed"); + } + return t.end(); + } + + if (expectedError) { + t.fail("Sync: Error expected, parsed fine .. - " + file); + return t.end(); + } + + var outpng = new PNG(); + outpng.gamma = png.gamma; + outpng.data = png.data; + outpng.width = png.width; + outpng.height = png.height; + outpng.pack() + .pipe(fs.createWriteStream(__dirname + '/outsync/' + file) + .on("finish", function () { + t.pass("completed"); + t.end(); + })); + }); + + test('convert async - ' + file, function(t) { + fs.createReadStream(__dirname + '/in/' + file) + .pipe(new PNG()) + .on('error', function (err) { + if (!expectedError) { + t.fail("Async: Unexpected error parsing.." + file + '\n' + err.message + '\n' + err.stack); + } else { + t.pass("completed"); + } + t.end(); + }) + .on('parsed', function () { + + if (expectedError) { + t.fail("Async: Error expected, parsed fine .." + file); + return t.end(); + } + + this.pack() + .pipe( + fs.createWriteStream(__dirname + '/out/' + file) + .on("finish", function() { + t.pass("completed"); + t.end(); + })); + }); + }); + }); +}); diff --git a/test/convert-images.js b/test/convert-images.js deleted file mode 100644 index 8ae5fde..0000000 --- a/test/convert-images.js +++ /dev/null @@ -1,95 +0,0 @@ - -var fs = require('fs'), - PNG = require('../lib/png').PNG; - -module.exports = function(done) { - - fs.readdir(__dirname + '/in/', function (err, files) { - if (err) throw err; - - files = files.filter(function(file) { - return ((process.argv[2] || "").indexOf("nolarge") < 0 || !file.match(/large/i)) && Boolean(file.match(/\.png$/i)); - }); - - console.log("Converting images"); - - var completed = 0; - var expected = files.length * 2; - var anyFailures = false; - function complete(isSuccessful) { - completed++; - anyFailures = anyFailures || !isSuccessful; - if (expected === completed) { - if (anyFailures) { - process.exit(1); - return; - } - done(); - } - } - - files.forEach(function (file) { - - //console.log(file); - var expectedError = false; - if (file.match(/^x/)) { - expectedError = true; - } - - var syncError = false; - var data = fs.readFileSync(__dirname + '/in/' + file); - try { - var png = PNG.sync.read(data); - } catch (e) { - if (!expectedError) { - console.log("Sync: Unexpected error parsing.." + file); - console.log(e); - console.log(e.stack); - } - syncError = true; - complete(expectedError); - } - - if (!syncError) { - if (expectedError) { - console.log("Sync: Error expected, parsed fine ..", file); - complete(false); - } else { - - var outpng = new PNG(); - outpng.gamma = png.gamma; - outpng.data = png.data; - outpng.width = png.width; - outpng.height = png.height; - outpng.pack() - .pipe(fs.createWriteStream(__dirname + '/outsync/' + file) - .on("finish", function () { - complete(true); - })); - } - } - - fs.createReadStream(__dirname + '/in/' + file) - .pipe(new PNG()) - .on('error', function (err) { - if (!expectedError) { - console.log("Async: Unexpected error parsing.." + file, err); - } - complete(expectedError); - }) - .on('parsed', function () { - - if (expectedError) { - console.log("Async: Error expected, parsed fine ..", file); - } - - this.pack() - .pipe( - fs.createWriteStream(__dirname + '/out/' + file) - .on("finish", function() { - complete(true); - })); - }); - }); - }); -} diff --git a/test/index.js b/test/index.js deleted file mode 100644 index 01026c8..0000000 --- a/test/index.js +++ /dev/null @@ -1,3 +0,0 @@ -require("./convert-images")(function() { - require("./run-compare"); -}); \ No newline at end of file