var test = require('tap').test;
var vm = require('vm');

var insert = require('../');
var bpack = require('browser-pack');
var mdeps = require('module-deps');

test('insert globals', function (t) {
    t.plan(2);
    
    var files = [ __dirname + '/global/main.js' ];
    var deps = mdeps(files);
    var ins = insert(files);
    var pack = bpack({ raw: true });
    
    deps.pipe(ins).pipe(pack);
    
    var src = '';
    pack.on('data', function (buf) { src += buf });
    pack.on('end', function () {
        var c = {
            t : t,
            a : 555,
        };
        c.window = c;
        vm.runInNewContext(src, c);
    });
});

test('__filename and __dirname', function (t) {
    t.plan(2);
    
    var files = [ __dirname + '/global/filename.js' ];
    var deps = mdeps(files);
    var ins = insert(files);
    var pack = bpack({ raw: true });
    
    deps.pipe(ins).pipe(pack);
    
    var src = '';
    pack.on('data', function (buf) { src += buf });
    pack.on('end', function () {
        var c = {};
        vm.runInNewContext('require=' + src, c);
        var x = c.require(files[0]);
        t.equal(x.filename, '/filename.js');
        t.equal(x.dirname, '/');
    });
});
