Browse Source

Implement our own mocking logic

pull/2/head
Luke Childs 7 years ago
parent
commit
bc2fa72c41
  1. 3
      package.json
  2. 5
      src/index.js
  3. 2
      test/requireable.js

3
package.json

@ -30,8 +30,7 @@
},
"homepage": "https://github.com/lukechilds/requireable",
"dependencies": {
"find-root": "^1.1.0",
"mock-require": "^2.0.2"
"find-root": "^1.1.0"
},
"devDependencies": {
"ava": "^0.19.1",

5
src/index.js

@ -1,14 +1,15 @@
'use strict';
const Module = require('module');
const findRoot = require('find-root');
const mock = require('mock-require');
const pkg = { success: false };
try {
pkg.path = findRoot(process.cwd());
pkg.name = require(pkg.path + '/package.json').name;
mock(pkg.name, () => require(pkg.path));
const origRequire = Module.prototype.require;
Module.prototype.require = pkgName => pkgName === pkg.name ? origRequire(pkg.path) : origRequire(pkgName);
pkg.success = true;
} catch (err) {}

2
test/requireable.js

@ -8,5 +8,5 @@ test.serial(`outputs success info`, t => {
test.serial(`requiring package name requires root package`, t => {
// eslint-disable-next-line import/no-extraneous-dependencies, import/no-unresolved
t.true(typeof require('requireable') === 'function');
t.is(require('requireable'), require('../'));
});

Loading…
Cancel
Save