text: 
  var test = require("tap").test;
  var defaultFormater = require('../../format.js');
  var produce = require('../produce.js');
  
  // Set a formater before stack-chain is required
  Error.prepareStackTrace = function (error, frames) {
    if (error.test) {
      var lines = [];
          lines.push(error.toString());
  
      for (var i = 0, l = frames.length; i < l; i++) {
          lines.push(frames[i].getFunctionName());
      }
  
      return lines.join("\n");
    }
  
    return defaultFormater(error, frames);
  };
  
  var chain = require('../../');
  
  test("set Error.prepareStackTrace before require", function (t) {
    t.test("default formatter replaced", function (t) {
      t.equal(produce.real(3), produce.fake([
        'Error: trace',
        '',
        'deepStack',
        'deepStack'
      ]));
  
      t.end();
    });
  
    t.test("restore default formater", function (t) {
      chain.format.restore();
  
      t.equal(produce.real(3), produce.fake([
        'Error: trace',
        '    at {where}:18:17',
        '    at deepStack ({where}:5:5)',
        '    at deepStack ({where}:7:5)'
      ]));
  
      t.end();
    });
  
    t.end();
  });
  