Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
epidemian
GitHub Repository: epidemian/eslint-plugin-import
Path: blob/main/resolvers/webpack/test/externals.js
829 views
1
'use strict';
2
3
const chai = require('chai');
4
const expect = chai.expect;
5
const path = require('path');
6
const semver = require('semver');
7
8
const webpack = require('../index');
9
10
const file = path.join(__dirname, 'files', 'dummy.js');
11
12
describe('externals', function () {
13
const settingsWebpack5 = {
14
config: require(path.join(__dirname, './files/webpack.config.webpack5.js')),
15
};
16
17
it('works on just a string', function () {
18
const resolved = webpack.resolve('bootstrap', file);
19
expect(resolved).to.have.property('found', true);
20
expect(resolved).to.have.property('path', null);
21
});
22
23
it('works on object-map', function () {
24
const resolved = webpack.resolve('jquery', file);
25
expect(resolved).to.have.property('found', true);
26
expect(resolved).to.have.property('path', null);
27
});
28
29
it('works on a function', function () {
30
const resolved = webpack.resolve('underscore', file);
31
expect(resolved).to.have.property('found', true);
32
expect(resolved).to.have.property('path', null);
33
});
34
35
it('returns null for core modules', function () {
36
const resolved = webpack.resolve('fs', file);
37
expect(resolved).to.have.property('found', true);
38
expect(resolved).to.have.property('path', null);
39
});
40
41
it('works on a function (synchronous) for webpack 5', function () {
42
const resolved = webpack.resolve('underscore', file, settingsWebpack5);
43
expect(resolved).to.have.property('found', true);
44
expect(resolved).to.have.property('path', null);
45
});
46
47
it('works on a function (synchronous) which uses getResolve for webpack 5', function () {
48
const resolved = webpack.resolve('graphql', file, settingsWebpack5);
49
expect(resolved).to.have.property('found', true);
50
expect(resolved).to.have.property('path', null);
51
});
52
53
(semver.satisfies(process.version, '> 6') ? describe : describe.skip)('async function in webpack 5', function () {
54
const settingsWebpack5Async = () => ({
55
config: require(path.join(__dirname, './files/webpack.config.webpack5.async-externals.js')),
56
});
57
58
it('prevents using an asynchronous function for webpack 5', function () {
59
const resolved = webpack.resolve('underscore', file, settingsWebpack5Async());
60
expect(resolved).to.have.property('found', false);
61
});
62
63
it('prevents using a function which uses Promise returned by getResolve for webpack 5', function () {
64
const resolved = webpack.resolve('graphql', file, settingsWebpack5Async());
65
expect(resolved).to.have.property('found', false);
66
});
67
});
68
});
69
70