1 | var test = require('tap').test;
|
2 | var spawn = require('child_process').spawn;
|
3 | var path = require('path');
|
4 | var fs = require('fs');
|
5 | var vm = require('vm');
|
6 | var concat = require('concat-stream');
|
7 |
|
8 | var temp = require('temp');
|
9 | temp.track();
|
10 | var tmpdir = temp.mkdirSync({prefix: 'browserify-test'});
|
11 |
|
12 | fs.writeFileSync(tmpdir + '/main.js', 'beep(require("crypto"))\n');
|
13 |
|
14 | if (!ArrayBuffer.isView) ArrayBuffer.isView = function () { return false; };
|
15 |
|
16 | test('*-browserify libs from node_modules/', function (t) {
|
17 | t.plan(2);
|
18 |
|
19 | var bin = __dirname + '/../bin/cmd.js';
|
20 | var ps = spawn(process.execPath, [ bin, 'main.js' ], { cwd : tmpdir });
|
21 |
|
22 | ps.stderr.pipe(process.stderr, { end : false });
|
23 |
|
24 | ps.on('exit', function (code) {
|
25 | t.equal(code, 0);
|
26 | });
|
27 |
|
28 | ps.stdout.pipe(concat(function (src) {
|
29 | var c = {
|
30 | Int32Array: Int32Array,
|
31 | ArrayBuffer: ArrayBuffer,
|
32 | Uint8Array: Uint8Array,
|
33 | DataView: DataView,
|
34 | beep : function (c) {
|
35 | t.equal(typeof c.createHash, 'function');
|
36 | },
|
37 | require: function () {}
|
38 | };
|
39 | vm.runInNewContext(src.toString('utf8'), c);
|
40 | }));
|
41 | });
|