text: 'use strict';
  var test = require('tape');
  var Vinyl = require('vinyl');
  var minifer = require('../minifier');
  var cmem = require('cmem');
  
  var testContentsOutput = 'function abs(a, b) {\n  return a > b; }';
  var testContentsInput = 'function testInput() {}';
  var testFile = new Vinyl({
    cwd: '/home/terin/broken-promises/',
    base: '/home/terin/broken-promises/test',
    path: '/home/terin/broken-promises/test/test1.js',
    contents: new Buffer(testContentsInput)
  });
  var uglifyjs = {
    minify: cmem(function() {
      return {
        code: testContentsOutput
      };
    })
  };
  
  test('should minify files', function(t) {
    t.plan(10);
  
    var stream = minifer({injecting: true}, uglifyjs);
  
    stream.on('data', function(newFile) {
      t.ok(newFile, 'emits a file');
      t.ok(newFile.path, 'file has a path');
      t.ok(newFile.relative, 'file has relative path information');
      t.ok(newFile.contents, 'file has contents');
  
      t.ok(newFile instanceof Vinyl, 'file is Vinyl');
      t.ok(newFile.contents instanceof Buffer, 'file contents are a buffer');
  
      t.equals(String(newFile.contents), testContentsOutput);
  
      t.equals(uglifyjs.minify.$count, 1, 'minify stub was called only once');
      t.equals(uglifyjs.minify.$args[0], testContentsInput, 'stub argument 0 was the expected input');
      t.deepEqual(uglifyjs.minify.$args[1], {
        fromString: true,
        output: {},
        injecting: true
      }, 'stub argument 1 was the expected options');
    });
  
    stream.write(testFile);
    stream.end();
  });
  