var parser = require('../'); var test = require('tap').test; var fs = require('fs'); var path = require('path'); var files = { main: path.join(__dirname, '/ignore_missing/main.js'), other: path.join(__dirname, '/ignore_missing/other.js') }; var sources = Object.keys(files).reduce(function (acc, file) { acc[file] = fs.readFileSync(files[file], 'utf8'); return acc; }, {}); test('ignoreMissing', function (t) { t.plan(1); var p = parser({ignoreMissing: true}); p.end({file: files.main, entry: true}); var rows = []; p.on('data', function (row) { rows.push(row) }); p.on('end', function () { t.same(rows.sort(cmp), [ { id: files.main, file: files.main, source: sources.main, entry: true, deps: { './other': files.other } }, { id: files.other, file: files.other, source: sources.other, deps: { 'missingModule': undefined } } ].sort(cmp)); }); }); test('ignoreMissing off', function (t) { t.plan(1); var p = parser(); p.end({file: files.main, entry: true}); var rows = []; p.on('data', function (row) { rows.push(row) }); p.on('error', function (err) { t.match( String(err), /Cannot find module 'missingModule'/ ); }); p.on('end', function () { t.fail('should have errored'); }); }); function cmp (a, b) { return a.id < b.id ? -1 : 1 }