var expect = require('chai').expect;
var fis = require('..');
var path = require('path');

describe('Simple release', function () {
  var root = path.join(__dirname, 'release', 'fixtures');
  beforeEach(function () {
    fis.project.setProjectRoot(root);
    fis.media().init();
    fis.config.init();
    fis.compile.setup();
  });

  it ('release simple index.html', function (done) {
    fis.release(function(ret) {
      var exists = !!ret.src['/index.html'];

      expect(exists).to.be.equals(true);
      done();
    });
  });
});

describe('Simple release with direved', function () {
  var root = path.join(__dirname, 'release', 'fixtures');
  beforeEach(function () {
    fis.project.setProjectRoot(root);
    fis.media().init();
    fis.config.init();
    fis.compile.setup();
  });

  it ('release simple index.html', function (done) {

    fis.match('*.html', {
      useCache: false,
      parser: function(content, file) {
        file.derived = file.derived || [];

        var newfile = fis.file.wrap(path.join(root, 'derived.js'));
        newfile.setContent('direved');

        file.derived.push(newfile);

        return content;
      }
    });


    fis.release(function(ret) {
      var exists = !!ret.src['/derived.js'];

      expect(exists).to.be.equals(true);
      expect(ret.src['/derived.js'].getContent()).to.be.equals('direved');
      done();
    });
  });
});

@@ -80,24 +80,27 @@
 e('path');%0A%0A
+// 
 describe('Si
@@ -120,32 +120,35 @@
 , function () %7B%0A
+// 
   var root = pat
@@ -181,32 +181,35 @@
 ', 'fixtures');%0A
+// 
   beforeEach(fun
@@ -211,32 +211,35 @@
 h(function () %7B%0A
+// 
     fis.project.
@@ -252,32 +252,35 @@
 jectRoot(root);%0A
+// 
     fis.media().
@@ -279,32 +279,35 @@
 media().init();%0A
+// 
     fis.config.i
@@ -305,32 +305,35 @@
 .config.init();%0A
+// 
     fis.compile.
@@ -333,39 +333,45 @@
 ompile.setup();%0A
+// 
   %7D);%0A%0A
+// 
   it ('release s
@@ -399,24 +399,40 @@
 nction (
-done
 ) %7B%0A
+//     var ret;%0A%0A// 
     fis.
@@ -442,38 +442,78 @@
 ease(function(re
+sul
 t) %7B%0A
+// 
  
+     ret = result;%0A%0A//     %7D);%0A%0A//
      var exists 
@@ -537,24 +537,27 @@
 ex.html'%5D;%0A%0A
+// 
       expect
@@ -549,38 +549,35 @@
 //       expect(
-exists
+ret
 ).to.be.equals(t
@@ -586,41 +586,28 @@
 e);%0A
-      done();%0A 
+//
    %7D);%0A
- 
+//
  %7D);%0A
-%7D);%0A%0A
+%0A// 
 desc
@@ -656,16 +656,19 @@
 on () %7B%0A
+// 
   var ro
@@ -717,16 +717,19 @@
 ures');%0A
+// 
   before
@@ -743,24 +743,27 @@
 nction () %7B%0A
+// 
     fis.proj
@@ -788,16 +788,19 @@
 (root);%0A
+// 
     fis.
@@ -807,32 +807,35 @@
 media().init();%0A
+// 
     fis.config.i
@@ -841,20 +841,23 @@
 init();%0A
+//
     
+ 
 fis.comp
@@ -869,23 +869,29 @@
 etup();%0A
+// 
   %7D);%0A%0A
+// 
   it ('r
@@ -931,21 +931,20 @@
 on (
-done
 ) %7B%0A%0A
+//
     
+ 
 fis.
@@ -961,22 +961,25 @@
 tml', %7B%0A
+//
       
+ 
 useCache
@@ -987,16 +987,19 @@
  false,%0A
+// 
       pa
@@ -1030,24 +1030,26 @@
 file) %7B%0A
+//
         
 file.der
@@ -1032,32 +1032,33 @@
 le) %7B%0A//        
+ 
 file.derived = f
@@ -1073,24 +1073,27 @@
 ved %7C%7C %5B%5D;%0A%0A
+// 
         var 
@@ -1148,16 +1148,19 @@
 .js'));%0A
+// 
         
@@ -1187,24 +1187,27 @@
 direved');%0A%0A
+// 
         file
@@ -1231,16 +1231,19 @@
 file);%0A%0A
+// 
         
@@ -1262,16 +1262,19 @@
 nt;%0A
+// 
       %7D%0A
     
@@ -1269,16 +1269,19 @@
       %7D%0A
+// 
     %7D);%0A
@@ -1282,16 +1282,19 @@
   %7D);%0A%0A%0A
+// 
     fis.
@@ -1317,16 +1317,19 @@
 (ret) %7B%0A
+// 
       va
@@ -1370,49 +1370,11 @@
 %5D;%0A%0A
+//
  
-     expect(exists).to.be.equals(true);%0A
     
@@ -1448,30 +1448,63 @@
 ');%0A
+//
       
-done();%0A
+ expect(exists).to.be.equals(true);%0A// 
     %7D);%0A
   %7D)
@@ -1499,18 +1499,24 @@
     %7D);%0A
+// 
   %7D);%0A
+// 
 %7D);%0A

comment async test case