79 lines
2.0 KiB
JavaScript
79 lines
2.0 KiB
JavaScript
import {join} from 'path';
|
|
|
|
import {expect} from 'chai';
|
|
import clearModule from 'clear-module';
|
|
|
|
import resolve from '@flecks/build/build/resolve';
|
|
import Resolver from '@flecks/build/build/resolver';
|
|
|
|
const {
|
|
FLECKS_CORE_ROOT = process.cwd(),
|
|
} = process.env;
|
|
|
|
const root = join(FLECKS_CORE_ROOT, 'test', 'server', 'resolve');
|
|
|
|
it('can resolve', async () => {
|
|
const resolver = new Resolver();
|
|
expect(await resolver.resolve('./test/server/resolve'))
|
|
.to.equal(join(FLECKS_CORE_ROOT, 'test', 'server', 'resolve.js'));
|
|
});
|
|
|
|
it('can create aliases at runtime', async () => {
|
|
const resolver = new Resolver();
|
|
expect(await resolver.resolve('./test/server/foobar'))
|
|
.to.be.undefined;
|
|
resolver.addAlias('./test/server/foobar', './test/server/resolve');
|
|
expect(await resolver.resolve('./test/server/foobar'))
|
|
.to.not.be.undefined;
|
|
});
|
|
|
|
it('can resolve inexact at runtime', async () => {
|
|
const clear = resolve({
|
|
alias: {
|
|
'./foo': './bar',
|
|
},
|
|
fallback: {},
|
|
}, []);
|
|
expect(__non_webpack_require__(join(root, 'blah')))
|
|
.to.equal(4);
|
|
clear();
|
|
clearModule(join(root, 'blah'));
|
|
expect(__non_webpack_require__(join(root, 'blah')))
|
|
.to.equal(3);
|
|
clearModule(join(root, 'blah'));
|
|
});
|
|
|
|
it('can resolve exact at runtime', async () => {
|
|
const clear = resolve({
|
|
alias: {
|
|
'./foo$': './bar',
|
|
},
|
|
fallback: {},
|
|
}, []);
|
|
expect(__non_webpack_require__(join(root, 'blah')))
|
|
.to.equal(3);
|
|
expect(__non_webpack_require__(join(root, 'boo')))
|
|
.to.equal(2);
|
|
clear();
|
|
clearModule(join(root, 'blah'));
|
|
clearModule(join(root, 'boo'));
|
|
expect(__non_webpack_require__(join(root, 'boo')))
|
|
.to.equal(1);
|
|
clearModule(join(root, 'boo'));
|
|
});
|
|
|
|
it('can resolve false at runtime', async () => {
|
|
const clear = resolve({
|
|
alias: {
|
|
'./foo': false,
|
|
},
|
|
fallback: {},
|
|
}, []);
|
|
expect(__non_webpack_require__(join(root, 'boo')))
|
|
.to.be.undefined;
|
|
clear();
|
|
clearModule(join(root, 'boo'));
|
|
expect(__non_webpack_require__(join(root, 'boo')))
|
|
.to.equal(1);
|
|
});
|