forked from enviPath/enviPy
46 lines
1012 B
JavaScript
46 lines
1012 B
JavaScript
'use strict';
|
|
|
|
var browserify = require('browserify')
|
|
, vm = require('vm')
|
|
, exposify = require('../');
|
|
|
|
var test = require('tap').test;
|
|
|
|
function run(config, file, window, cb) {
|
|
|
|
var ctx = { window: window };
|
|
var fullPath = require.resolve('./fixtures/' + file);
|
|
|
|
browserify()
|
|
.require(fullPath)
|
|
.transform(exposify, config)
|
|
.bundle(function (err, res) {
|
|
if (err) return cb(err);
|
|
try {
|
|
var require_ = vm.runInNewContext(res, ctx);
|
|
cb(null, require_(fullPath));
|
|
} catch (e) {
|
|
cb(e);
|
|
}
|
|
});
|
|
}
|
|
|
|
|
|
function jquery() { return 'jq' }
|
|
|
|
test('\nproviding jquery:$ and exposifying src with one jquery require', function (t) {
|
|
var file = 'jquery-only.js';
|
|
var window = { $: { jquery: jquery } };
|
|
|
|
var config = {
|
|
expose: { 'jquery': '$' }
|
|
};
|
|
|
|
run(config, file, window, function (err, main) {
|
|
if (err) { t.fail(err); return t.end(); }
|
|
t.equal(main(), 'jq', 'exposes $ as jquery');
|
|
|
|
t.end();
|
|
});
|
|
});
|