UNPKG

1.5 kBJavaScriptView Raw
1var mdeps = require('../');
2var test = require('tap').test;
3var path = require('path');
4var through = require('through2');
5
6var files = {
7 foo: path.join(__dirname, '/files/foo.js'),
8 bar: path.join(__dirname, '/files/bar.js')
9};
10
11var sources = {
12 foo: 'require("./bar"); var tongs;',
13 bar: 'notreal tongs'
14};
15
16var fileCache = {};
17fileCache[files.foo] = sources.foo;
18fileCache[files.bar] = sources.bar;
19
20var specialReplace = function(input) {
21 return input.replace(/tongs/g, 'tangs');
22};
23
24test('uses file cache', function (t) {
25 t.plan(1);
26 var p = mdeps({
27 fileCache: fileCache,
28 transform: function (file) {
29 return through(function (buf, enc, next) {
30 this.push(specialReplace(String(buf)));
31 next();
32 });
33 },
34 transformKey: [ 'browserify', 'transform' ]
35 });
36 p.end({ id: 'foo', file: files.foo, entry: false });
37
38 var rows = [];
39 p.on('data', function (row) { rows.push(row) });
40 p.on('end', function () {
41 t.same(rows.sort(cmp), [
42 {
43 id: 'foo',
44 file: files.foo,
45 source: specialReplace(sources.foo),
46 deps: { './bar': files.bar }
47 },
48 {
49 id: files.bar,
50 file: files.bar,
51 source: specialReplace(sources.bar),
52 deps: {}
53 }
54 ].sort(cmp));
55 });
56});
57
58function cmp (a, b) { return a.id < b.id ? -1 : 1 }