var
  expect = require('chai').expect,
  path = require('path'),
  glob = require('glob'),
  fs = require('fs');

var js2coffee, name, input, output;
var groups = glob.sync(__dirname + '/../specs/*');

before(function () {
  js2coffee = require('../index');
});

describe('specs:', function () {
  groups.forEach(function (dirname) {
    var group = path.basename(dirname).replace(/_/g, ' ');

    describe(group, function () {
      var specs = glob.sync(dirname + '/*');

      specs.forEach(function (dirname) {
        var name = path.basename(dirname).replace(/_/g, ' ');

        if (~group.indexOf('pending')) {
          xit(name.trim(), function () {});
        } else {
          it(name, function () {
            var input = fs.readFileSync(dirname + '/input.js', 'utf-8');
            var output = fs.readFileSync(dirname + '/output.coffee', 'utf-8');
            var result = js2coffee(input);
            expect(result).eql(output);
          });
        }
      });
    });
  });
});

@@ -260,43 +260,8 @@
 );%0A%0A
-describe('specs:', function () %7B%0A  
 grou
@@ -292,18 +292,16 @@
 name) %7B%0A
-  
   var gr
@@ -350,18 +350,16 @@
  ' ');%0A%0A
-  
   descri
@@ -382,26 +382,24 @@
 on () %7B%0A    
- 
- 
 var specs = 
@@ -430,18 +430,16 @@
 );%0A%0A    
-  
 specs.fo
@@ -461,26 +461,24 @@
 (dirname) %7B%0A
-  
       var na
@@ -536,12 +536,18 @@
     
-  if
+var test =
  (~g
@@ -575,82 +575,29 @@
 ')) 
-%7B%0A          xit(name.trim(), function () %7B%7D);%0A        %7D else %7B%0A          i
+? xit : it;%0A      tes
 t(na
@@ -618,28 +618,24 @@
 ) %7B%0A        
- 
-   
 var input = 
@@ -675,36 +675,32 @@
 .js', 'utf-8');%0A
-    
         var outp
@@ -762,28 +762,24 @@
 ');%0A        
-   
- 
 var result =
@@ -805,20 +805,16 @@
         
-    
 expect(r
@@ -837,32 +837,8 @@
 t);%0A
-          %7D);%0A        %7D%0A
     

Update test runner.