Adds better structured batch tests.
authorJakub Pawlowicz <jakub@goalsmashers.com>
Thu, 13 Feb 2014 21:54:49 +0000 (21:54 +0000)
committerJakub Pawlowicz <jakub@goalsmashers.com>
Thu, 13 Feb 2014 22:10:55 +0000 (22:10 +0000)
Use of async topic prevents individual fails from stopping subsequent tests from being run.

test/batch-test.js

index 42363df..7fdc44d 100644 (file)
@@ -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;