Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
epidemian
GitHub Repository: epidemian/eslint-plugin-import
Path: blob/main/resolvers/webpack/test/packageMains.js
829 views
1
'use strict';
2
3
const chai = require('chai');
4
const expect = chai.expect;
5
const path = require('path');
6
7
const resolver = require('../');
8
9
const file = path.join(__dirname, 'package-mains', 'dummy.js');
10
11
12
describe('packageMains', function () {
13
14
it('captures module', function () {
15
expect(resolver.resolve('./module', file)).property('path')
16
.to.equal(path.join(__dirname, 'package-mains', 'module', 'src', 'index.js'));
17
});
18
19
it('captures jsnext', function () {
20
expect(resolver.resolve('./jsnext', file)).property('path')
21
.to.equal(path.join(__dirname, 'package-mains', 'jsnext', 'src', 'index.js'));
22
});
23
24
it('captures module instead of jsnext', function () {
25
expect(resolver.resolve('./module-and-jsnext', file)).property('path')
26
.to.equal(path.join(__dirname, 'package-mains', 'module-and-jsnext', 'src', 'index.js'));
27
});
28
29
it('falls back from a missing "module" to "main"', function () {
30
expect(resolver.resolve('./module-broken', file)).property('path')
31
.to.equal(path.join(__dirname, 'package-mains', 'module-broken', 'main.js'));
32
});
33
34
it('captures webpack', function () {
35
expect(resolver.resolve('./webpack', file)).property('path')
36
.to.equal(path.join(__dirname, 'package-mains', 'webpack', 'webpack.js'));
37
});
38
39
it('captures jam (array path)', function () {
40
expect(resolver.resolve('./jam', file)).property('path')
41
.to.equal(path.join(__dirname, 'package-mains', 'jam', 'jam.js'));
42
});
43
44
it('uses configured packageMains, if provided', function () {
45
expect(resolver.resolve('./webpack', file, { config: 'webpack.alt.config.js' })).property('path')
46
.to.equal(path.join(__dirname, 'package-mains', 'webpack', 'index.js'));
47
});
48
49
it('always defers to module, regardless of config', function () {
50
expect(resolver.resolve('./module', file, { config: 'webpack.alt.config.js' })).property('path')
51
.to.equal(path.join(__dirname, 'package-mains', 'module', 'src', 'index.js'));
52
});
53
54
it('always defers to jsnext:main, regardless of config', function () {
55
expect(resolver.resolve('./jsnext', file, { config: 'webpack.alt.config.js' })).property('path')
56
.to.equal(path.join(__dirname, 'package-mains', 'jsnext', 'src', 'index.js'));
57
});
58
});
59
60