From d1390081363f852ba485648e7d851279913a1453 Mon Sep 17 00:00:00 2001 From: Jakub Pawlowicz Date: Thu, 13 Feb 2014 21:54:49 +0000 Subject: [PATCH] Adds better structured batch tests. Use of async topic prevents individual fails from stopping subsequent tests from being run. --- test/batch-test.js | 35 +++++++++++++++++++++-------------- 1 file changed, 21 insertions(+), 14 deletions(-) diff --git a/test/batch-test.js b/test/batch-test.js index 42363df9..7fdc44dd 100644 --- a/test/batch-test.js +++ b/test/batch-test.js @@ -10,7 +10,7 @@ var batchContexts = function() { var context = {}; var dir = path.join(__dirname, 'data'); fs.readdirSync(dir).forEach(function(filename) { - if (/min.css$/.exec(filename) || !fs.statSync(path.join(dir, filename)).isFile()) + if (filename.indexOf('.css') == -1 || /min.css$/.exec(filename) || !fs.statSync(path.join(dir, filename)).isFile()) return; var testName = filename.split('.')[0]; @@ -24,21 +24,28 @@ var batchContexts = function() { preminified: fs.readFileSync(minPath, 'utf-8'), root: path.dirname(plainPath) }; + }, + minifying: { + topic: function(data) { + var self = this; + + new CleanCSS({ + keepBreaks: true, + root: data.root + }).minify(data.plain, function(errors, minified) { + self.callback(errors, minified, data); + }); + }, + 'should output right content': function(errors, minified, data) { + var minifiedTokens = minified.split(lineBreak); + var preminifiedTokens = data.preminified.split(lineBreak); + + minifiedTokens.forEach(function(line, i) { + assert.equal(line, preminifiedTokens[i]); + }); + } } }; - context[testName]['minimizing ' + testName + '.css'] = function(data) { - new CleanCSS({ - keepBreaks: true, - root: data.root - }).minify(data.plain, function(errors, minified) { - var minifiedTokens = minified.split(lineBreak); - var preminifiedTokens = data.preminified.split(lineBreak); - - minifiedTokens.forEach(function(line, i) { - assert.equal(line, preminifiedTokens[i]); - }); - }); - }; }); return context; -- 2.34.1