react / wstein / node_modules / browserify / node_modules / module-deps / test / cache_partial_expose.js
80538 viewsvar parser = require('../');1var test = require('tap').test;2var fs = require('fs');3var path = require('path');4var xtend = require('xtend');56var files = {7abc: path.join(__dirname, '/expose/lib/abc.js'),8xyz: path.join(__dirname, '/expose/lib/xyz.js'),9foo: path.join(__dirname, '/expose/foo.js'),10bar: path.join(__dirname, '/expose/bar.js'),11main: path.join(__dirname, '/expose/main.js')12};1314var sources = Object.keys(files).reduce(function (acc, file) {15acc[file] = fs.readFileSync(files[file], 'utf8');16return acc;17}, {});1819var cache = {};20cache[files.abc] = {21source: sources.abc,22deps: {}23};24cache[files.xyz] = {25source: sources.xyz,26deps: {'../foo': files.foo}27};28cache[files.foo] = {29source: sources.foo,30deps: {'./lib/abc': files.abc}31};32cache[files.bar] = {33source: sources.bar,34deps: {xyz: files.xyz}35};36cache[files.main] = {37source: sources.main,38deps: {39abc: files.abc,40xyz: files.xyz,41'./bar': files.bar42}43};4445test('preserves expose and entry with partial cache', function(t) {46t.plan(1);4748var partialCache = xtend(cache);49delete partialCache[files.bar];5051var p = parser({ cache: partialCache });52p.write({ id: 'abc', file: files.abc, expose: 'abc' });53p.write({ id: 'xyz', file: files.xyz, expose: 'xyz' });54p.end({ id: 'main', file: files.main, entry: true });5556var rows = [];57p.on('data', function (row) { rows.push(row); });58p.on('end', function () {59t.same(rows.sort(cmp), [60{61id: files.bar,62file: files.bar,63source: sources.bar,64deps: {xyz: files.xyz}65},66{67file: files.foo,68id: files.foo,69source: sources.foo,70deps: {'./lib/abc': files.abc}71},72{73id: 'abc',74file: files.abc,75source: sources.abc,76deps: {},77entry: true,78expose: 'abc'79},80{81id: 'main',82file: files.main,83source: sources.main,84deps: {85'./bar': files.bar,86abc: files.abc,87xyz: files.xyz88},89entry: true90},91{92id: 'xyz',93file: files.xyz,94source: sources.xyz,95deps: {'../foo': files.foo},96entry: true,97expose: 'xyz'98}99].sort(cmp));100});101});102103function cmp (a, b) { return a.id < b.id ? -1 : 1 }104105106