react / wstein / node_modules / jest-cli / node_modules / istanbul / node_modules / resolve / test / mock.js
80684 viewsvar test = require('tape');1var resolve = require('../');23test('mock', function (t) {4t.plan(6);56var files = {7'/foo/bar/baz.js' : 'beep'8};910function opts (basedir) {11return {12basedir : basedir,13isFile : function (file, cb) {14cb(null, files.hasOwnProperty(file));15},16readFile : function (file, cb) {17cb(null, files[file]);18}19}20}2122resolve('./baz', opts('/foo/bar'), function (err, res, pkg) {23if (err) t.fail(err);24t.equal(res, '/foo/bar/baz.js');25t.equal(pkg, undefined);26});2728resolve('./baz.js', opts('/foo/bar'), function (err, res, pkg) {29if (err) t.fail(err);30t.equal(res, '/foo/bar/baz.js');31t.equal(pkg, undefined);32});3334resolve('baz', opts('/foo/bar'), function (err, res) {35t.equal(err.message, "Cannot find module 'baz' from '/foo/bar'");36});3738resolve('../baz', opts('/foo/bar'), function (err, res) {39t.equal(err.message, "Cannot find module '../baz' from '/foo/bar'");40});41});4243test('mock from package', function (t) {44t.plan(6);4546var files = {47'/foo/bar/baz.js' : 'beep'48};4950function opts (basedir) {51return {52basedir : basedir,53package : { main: 'bar' },54isFile : function (file, cb) {55cb(null, files.hasOwnProperty(file));56},57readFile : function (file, cb) {58cb(null, files[file]);59}60}61}6263resolve('./baz', opts('/foo/bar'), function (err, res, pkg) {64if (err) t.fail(err);65t.equal(res, '/foo/bar/baz.js');66t.equal(pkg.main, 'bar');67});6869resolve('./baz.js', opts('/foo/bar'), function (err, res, pkg) {70if (err) t.fail(err);71t.equal(res, '/foo/bar/baz.js');72t.equal(pkg.main, 'bar');73});7475resolve('baz', opts('/foo/bar'), function (err, res) {76t.equal(err.message, "Cannot find module 'baz' from '/foo/bar'");77});7879resolve('../baz', opts('/foo/bar'), function (err, res) {80t.equal(err.message, "Cannot find module '../baz' from '/foo/bar'");81});82});8384test('mock package', function (t) {85t.plan(2);8687var files = {88'/foo/node_modules/bar/baz.js' : 'beep',89'/foo/node_modules/bar/package.json' : JSON.stringify({90main : './baz.js'91})92};9394function opts (basedir) {95return {96basedir : basedir,97isFile : function (file, cb) {98cb(null, files.hasOwnProperty(file));99},100readFile : function (file, cb) {101cb(null, files[file]);102}103}104}105106resolve('bar', opts('/foo'), function (err, res, pkg) {107if (err) t.fail(err);108t.equal(res, '/foo/node_modules/bar/baz.js');109t.equal(pkg.main, './baz.js');110});111});112113test('mock package from package', function (t) {114t.plan(2);115116var files = {117'/foo/node_modules/bar/baz.js' : 'beep',118'/foo/node_modules/bar/package.json' : JSON.stringify({119main : './baz.js'120})121};122123function opts (basedir) {124return {125basedir : basedir,126package : { main: 'bar' },127isFile : function (file, cb) {128cb(null, files.hasOwnProperty(file));129},130readFile : function (file, cb) {131cb(null, files[file]);132}133}134}135136resolve('bar', opts('/foo'), function (err, res, pkg) {137if (err) t.fail(err);138t.equal(res, '/foo/node_modules/bar/baz.js');139t.equal(pkg.main, './baz.js');140});141});142143144