Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
Download
80517 views
1
var test = require('tap').test;
2
var fromArgs = require('../bin/args.js');
3
var path = require('path');
4
var vm = require('vm');
5
6
test('bundle from an arguments array', function (t) {
7
t.plan(2);
8
9
var b = fromArgs([ __dirname + '/entry/two.js', '-s', 'XYZ' ]);
10
b.bundle(function (err, src) {
11
t.ifError(err);
12
var c = { window: {} };
13
vm.runInNewContext(src, c);
14
t.equal(c.window.XYZ, 2);
15
});
16
});
17
18
test('external flag for node modules', function(t) {
19
t.plan(2);
20
21
var b = fromArgs([ __dirname + '/external_args/main.js', '-x', 'backbone' ]);
22
b.bundle(function (err, src) {
23
t.ifError(err);
24
vm.runInNewContext(src, {t: t});
25
});
26
});
27
28
test('bundle from an arguments with --insert-global-vars', function (t) {
29
t.plan(4);
30
31
var b = fromArgs([
32
__dirname + '/global/filename.js',
33
'--insert-global-vars=__filename,__dirname',
34
'--basedir', __dirname
35
]);
36
b.require(__dirname + '/global/filename.js', { expose: 'x' });
37
b.bundle(function (err, src) {
38
t.ifError(err, 'b.bundle()');
39
var c = {}, x;
40
vm.runInNewContext(src, c);
41
t.doesNotThrow(function() {
42
x = c.require('x');
43
}, 'x = c.require(\'x\')');
44
t.equal(x && x.filename, '/global/filename.js', 'x.filename');
45
t.equal(x && x.dirname, '/global', 'x.dirname');
46
})
47
});
48
49
test('numeric module names', function(t) {
50
t.plan(1);
51
52
var b = fromArgs([ '-x', '1337' ]);
53
b.bundle(function (err, src) {
54
t.ifError(err);
55
});
56
});
57
58
test('entry expose', function (t) {
59
t.plan(3)
60
61
var b = fromArgs([
62
path.join(__dirname, '/entry_expose/main.js'),
63
'--require', path.join(__dirname, '/entry_expose/main.js') + ':x',
64
]);
65
b.bundle(function (err, src) {
66
t.ifError(err);
67
var c = { console: { log: log } };
68
function log (msg) { t.equal(msg, 'wow') }
69
vm.runInNewContext(src, c);
70
t.equal(c.require('x'), 555);
71
})
72
});
73
74