schnee effeckt und fehler Korektur
This commit is contained in:
151
node_modules/resolve/test/resolver.js
generated
vendored
151
node_modules/resolve/test/resolver.js
generated
vendored
@@ -1,6 +1,12 @@
|
||||
var path = require('path');
|
||||
var test = require('tape');
|
||||
var resolve = require('../');
|
||||
var async = require('../async');
|
||||
|
||||
test('`./async` entry point', function (t) {
|
||||
t.equal(resolve, async, '`./async` entry point is the same as `main`');
|
||||
t.end();
|
||||
});
|
||||
|
||||
test('async foo', function (t) {
|
||||
t.plan(12);
|
||||
@@ -284,11 +290,60 @@ test('incorrect main', function (t) {
|
||||
});
|
||||
});
|
||||
|
||||
test('missing index', function (t) {
|
||||
t.plan(2);
|
||||
|
||||
var resolverDir = path.join(__dirname, 'resolver');
|
||||
resolve('./missing_index', { basedir: resolverDir }, function (err, res, pkg) {
|
||||
t.ok(err instanceof Error);
|
||||
t.equal(err && err.code, 'MODULE_NOT_FOUND', 'error has correct error code');
|
||||
});
|
||||
});
|
||||
|
||||
test('missing main', function (t) {
|
||||
t.plan(1);
|
||||
|
||||
var resolverDir = path.join(__dirname, 'resolver');
|
||||
|
||||
resolve('./missing_main', { basedir: resolverDir }, function (err, res, pkg) {
|
||||
t.equal(err && err.code, 'MODULE_NOT_FOUND', 'error has correct error code');
|
||||
});
|
||||
});
|
||||
|
||||
test('null main', function (t) {
|
||||
t.plan(1);
|
||||
|
||||
var resolverDir = path.join(__dirname, 'resolver');
|
||||
|
||||
resolve('./null_main', { basedir: resolverDir }, function (err, res, pkg) {
|
||||
t.equal(err && err.code, 'MODULE_NOT_FOUND', 'error has correct error code');
|
||||
});
|
||||
});
|
||||
|
||||
test('main: false', function (t) {
|
||||
t.plan(2);
|
||||
|
||||
var basedir = path.join(__dirname, 'resolver');
|
||||
var dir = path.join(basedir, 'false_main');
|
||||
resolve('./false_main', { basedir: basedir }, function (err, res, pkg) {
|
||||
if (err) t.fail(err);
|
||||
t.equal(
|
||||
res,
|
||||
path.join(dir, 'index.js'),
|
||||
'`"main": false`: resolves to `index.js`'
|
||||
);
|
||||
t.deepEqual(pkg, {
|
||||
name: 'false_main',
|
||||
main: false
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
test('without basedir', function (t) {
|
||||
t.plan(1);
|
||||
|
||||
var dir = path.join(__dirname, 'resolver/without_basedir');
|
||||
var tester = require(path.join(dir, 'main.js'));
|
||||
var tester = require(path.join(dir, 'main.js')); // eslint-disable-line global-require
|
||||
|
||||
tester(t, function (err, res, pkg) {
|
||||
if (err) {
|
||||
@@ -404,7 +459,7 @@ test('non-string "main" field in package.json', function (t) {
|
||||
var dir = path.join(__dirname, 'resolver');
|
||||
resolve('./invalid_main', { basedir: dir }, function (err, res, pkg) {
|
||||
t.ok(err, 'errors on non-string main');
|
||||
t.equal(err.message, 'package “invalid main” `main` must be a string');
|
||||
t.equal(err.message, 'package “invalid_main” `main` must be a string');
|
||||
t.equal(err.code, 'INVALID_PACKAGE_MAIN');
|
||||
t.equal(res, undefined, 'res is undefined');
|
||||
t.equal(pkg, undefined, 'pkg is undefined');
|
||||
@@ -417,7 +472,7 @@ test('non-string "main" field in package.json', function (t) {
|
||||
var dir = path.join(__dirname, 'resolver');
|
||||
resolve('./invalid_main', { basedir: dir }, function (err, res, pkg) {
|
||||
t.ok(err, 'errors on non-string main');
|
||||
t.equal(err.message, 'package “invalid main” `main` must be a string');
|
||||
t.equal(err.message, 'package “invalid_main” `main` must be a string');
|
||||
t.equal(err.code, 'INVALID_PACKAGE_MAIN');
|
||||
t.equal(res, undefined, 'res is undefined');
|
||||
t.equal(pkg, undefined, 'pkg is undefined');
|
||||
@@ -448,3 +503,93 @@ test('browser field in package.json', function (t) {
|
||||
}
|
||||
);
|
||||
});
|
||||
|
||||
test('absolute paths', function (t) {
|
||||
t.plan(4);
|
||||
|
||||
var extensionless = __filename.slice(0, -path.extname(__filename).length);
|
||||
|
||||
resolve(__filename, function (err, res) {
|
||||
t.equal(
|
||||
res,
|
||||
__filename,
|
||||
'absolute path to this file resolves'
|
||||
);
|
||||
});
|
||||
resolve(extensionless, function (err, res) {
|
||||
t.equal(
|
||||
res,
|
||||
__filename,
|
||||
'extensionless absolute path to this file resolves'
|
||||
);
|
||||
});
|
||||
resolve(__filename, { basedir: process.cwd() }, function (err, res) {
|
||||
t.equal(
|
||||
res,
|
||||
__filename,
|
||||
'absolute path to this file with a basedir resolves'
|
||||
);
|
||||
});
|
||||
resolve(extensionless, { basedir: process.cwd() }, function (err, res) {
|
||||
t.equal(
|
||||
res,
|
||||
__filename,
|
||||
'extensionless absolute path to this file with a basedir resolves'
|
||||
);
|
||||
});
|
||||
});
|
||||
|
||||
test('malformed package.json', function (t) {
|
||||
/* eslint operator-linebreak: ["error", "before"], function-paren-newline: "off" */
|
||||
t.plan(
|
||||
(3 * 3) // 3 sets of 3 assertions in the final callback
|
||||
+ 2 // 1 readPackage call with malformed package.json
|
||||
);
|
||||
|
||||
var basedir = path.join(__dirname, 'resolver/malformed_package_json');
|
||||
var expected = path.join(basedir, 'index.js');
|
||||
|
||||
resolve('./index.js', { basedir: basedir }, function (err, res, pkg) {
|
||||
t.error(err, 'no error');
|
||||
t.equal(res, expected, 'malformed package.json is silently ignored');
|
||||
t.equal(pkg, undefined, 'malformed package.json gives an undefined `pkg` argument');
|
||||
});
|
||||
|
||||
resolve(
|
||||
'./index.js',
|
||||
{
|
||||
basedir: basedir,
|
||||
packageFilter: function (pkg, pkgfile, dir) {
|
||||
t.fail('should not reach here');
|
||||
}
|
||||
},
|
||||
function (err, res, pkg) {
|
||||
t.error(err, 'with packageFilter: no error');
|
||||
t.equal(res, expected, 'with packageFilter: malformed package.json is silently ignored');
|
||||
t.equal(pkg, undefined, 'with packageFilter: malformed package.json gives an undefined `pkg` argument');
|
||||
}
|
||||
);
|
||||
|
||||
resolve(
|
||||
'./index.js',
|
||||
{
|
||||
basedir: basedir,
|
||||
readPackage: function (readFile, pkgfile, cb) {
|
||||
t.equal(pkgfile, path.join(basedir, 'package.json'), 'readPackageSync: `pkgfile` is package.json path');
|
||||
readFile(pkgfile, function (err, result) {
|
||||
try {
|
||||
cb(null, JSON.parse(result));
|
||||
} catch (e) {
|
||||
t.ok(e instanceof SyntaxError, 'readPackage: malformed package.json parses as a syntax error');
|
||||
cb(null);
|
||||
}
|
||||
});
|
||||
}
|
||||
},
|
||||
function (err, res, pkg) {
|
||||
t.error(err, 'with readPackage: no error');
|
||||
t.equal(res, expected, 'with readPackage: malformed package.json is silently ignored');
|
||||
t.equal(pkg, undefined, 'with readPackage: malformed package.json gives an undefined `pkg` argument');
|
||||
}
|
||||
);
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user