Skip to content

Commit

Permalink
[Test] add tests for "main": false
Browse files Browse the repository at this point in the history
  • Loading branch information
ljharb committed Feb 11, 2022
1 parent 3ab1da8 commit cf1d4cc
Show file tree
Hide file tree
Showing 4 changed files with 94 additions and 17 deletions.
49 changes: 49 additions & 0 deletions test/resolver.js
Original file line number Diff line number Diff line change
Expand Up @@ -290,6 +290,55 @@ 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);

Expand Down
Empty file.
4 changes: 4 additions & 0 deletions test/resolver/false_main/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
{
"name": "false_main",
"main": false
}
58 changes: 41 additions & 17 deletions test/resolver_sync.js
Original file line number Diff line number Diff line change
Expand Up @@ -317,7 +317,7 @@ test('missing index', function (t) {
resolve.sync('./missing_index', { basedir: resolverDir });
t.fail('did not fail');
} catch (err) {
t.equal(err && err.code, 'INCORRECT_PACKAGE_MAIN', 'error has correct error code');
t.equal(err && err.code, 'MODULE_NOT_FOUND', 'error has correct error code');
}
if (requireResolveSupportsPaths) {
try {
Expand All @@ -331,41 +331,65 @@ test('missing index', function (t) {

test('missing main', function (t) {
var resolverDir = path.join(__dirname, 'resolver');
var dir = path.join(resolverDir, 'missing_main');

t.equal(
resolve.sync('./missing_main', { basedir: resolverDir }),
path.join(dir, 'index.js')
);
try {
resolve.sync('./missing_main', { basedir: resolverDir });
t.fail('require.resolve did not fail');
} catch (err) {
t.equal(err && err.code, 'MODULE_NOT_FOUND', 'error has correct error code');
}
if (requireResolveSupportsPaths) {
t.equal(
resolve.sync('./missing_main', { basedir: resolverDir }),
require.resolve('./missing_main', { paths: [resolverDir] }),
'"main" missing: resolve.sync === require.resolve'
);
try {
resolve.sync('./missing_main', { basedir: resolverDir });
t.fail('require.resolve did not fail');
} catch (err) {
t.equal(err && err.code, 'MODULE_NOT_FOUND', 'error has correct error code');
}
}

t.end();
});

test('null main', function (t) {
var resolverDir = path.join(__dirname, 'resolver');
var dir = path.join(resolverDir, 'null_main');

try {
resolve.sync('./null_main', { basedir: resolverDir });
t.fail('require.resolve did not fail');
} catch (err) {
t.equal(err && err.code, 'MODULE_NOT_FOUND', 'error has correct error code');
}
if (requireResolveSupportsPaths) {
try {
resolve.sync('./null_main', { basedir: resolverDir });
t.fail('require.resolve did not fail');
} catch (err) {
t.equal(err && err.code, 'MODULE_NOT_FOUND', 'error has correct error code');
}
}

t.end();
});

test('main: false', function (t) {
var basedir = path.join(__dirname, 'resolver');
var dir = path.join(basedir, 'false_main');
t.equal(
resolve.sync('./null_main', { basedir: resolverDir }),
path.join(dir, 'index.js')
resolve.sync('./false_main', { basedir: basedir }),
path.join(dir, 'index.js'),
'`"main": false`: resolves to `index.js`'
);
if (requireResolveSupportsPaths) {
t.equal(
resolve.sync('./null_main', { basedir: resolverDir }),
require.resolve('./null_main', { paths: [resolverDir] }),
'`"main": null`: resolve.sync === require.resolve'
resolve.sync('./false_main', { basedir: basedir }),
require.resolve('./false_main', { paths: [basedir] }),
'`"main": false`: resolve.sync === require.resolve'
);
}

t.end();
});

var stubStatSync = function stubStatSync(fn) {
var statSync = fs.statSync;
try {
Expand Down

0 comments on commit cf1d4cc

Please sign in to comment.