liferay-npm-bundler-preset-reactjs
Version:
liferay npm bundler preset react
175 lines (144 loc) • 3.86 kB
text/typescript
/**
* SPDX-FileCopyrightText: © 2020 Liferay, Inc. <https://liferay.com>
* SPDX-License-Identifier: LGPL-3.0-or-later
*/
import path from 'path';
import * as babelUtil from '../babel-util';
import project from '../project';
const absPrjDirPath = path.join(__dirname, '__fixtures__', 'babel-util');
beforeAll(() => {
project.loadFrom(absPrjDirPath);
});
describe('getModuleName', () => {
it('works for source project module inside project.sources', () => {
const name = babelUtil.getModuleName(
path.join(absPrjDirPath, 'src', 'path', 'to', 'module.js')
);
expect(name).toEqual('babel-util@1.0.0/path/to/module');
});
it('works for source project module outside project.sources', () => {
const name = babelUtil.getModuleName(
path.join(absPrjDirPath, 'path', 'to', 'module.js')
);
expect(name).toEqual('babel-util@1.0.0/path/to/module');
});
it('works for source dependency module', () => {
const name = babelUtil.getModuleName(
path.join(
absPrjDirPath,
'node_modules',
'a-package',
'path',
'to',
'module.js'
)
);
expect(name).toEqual('a-package@1.0.0/path/to/module');
});
it('works for source scoped dependency module', () => {
const name = babelUtil.getModuleName(
path.join(
absPrjDirPath,
'node_modules',
'@a-scoped',
'package',
'path',
'to',
'module.js'
)
);
expect(name).toEqual('@a-scoped/package@1.0.0/path/to/module');
});
it('works for build project module', () => {
const name = babelUtil.getModuleName(
path.join(absPrjDirPath, 'build', 'path', 'to', 'module.js')
);
expect(name).toEqual('babel-util@1.0.0/path/to/module');
});
it('works for build dependency module', () => {
const name = babelUtil.getModuleName(
path.join(
absPrjDirPath,
'build',
'node_modules',
'a-package@1.0.0',
'path',
'to',
'module.js'
)
);
expect(name).toEqual('a-package@1.0.0/path/to/module');
});
it('works for build scoped dependency module', () => {
const name = babelUtil.getModuleName(
path.join(
absPrjDirPath,
'build',
'node_modules',
'@a-scoped%2Fpackage@1.0.0',
'path',
'to',
'module.js'
)
);
expect(name).toEqual('@a-scoped/package@1.0.0/path/to/module');
});
});
describe('getPackageDir', () => {
it('works for source project module', () => {
const dir = babelUtil.getPackageDir(
path.join(absPrjDirPath, 'path', 'to', 'module.js')
);
expect(dir).toEqual(absPrjDirPath);
});
it('works for source dependency module', () => {
const pkgDir = path.join(absPrjDirPath, 'node_modules', 'a-package');
const dir = babelUtil.getPackageDir(
path.join(pkgDir, 'path', 'to', 'module.js')
);
expect(dir).toEqual(pkgDir);
});
it('works for source scoped dependency module', () => {
const pkgDir = path.join(
absPrjDirPath,
'node_modules',
'@a-scoped',
'package'
);
const dir = babelUtil.getPackageDir(
path.join(pkgDir, 'path', 'to', 'module.js')
);
expect(dir).toEqual(pkgDir);
});
it('works for build project module', () => {
const pkgDir = path.join(absPrjDirPath, 'build');
const dir = babelUtil.getPackageDir(
path.join(pkgDir, 'path', 'to', 'module.js')
);
expect(dir).toEqual(pkgDir);
});
it('works for build dependency module', () => {
const pkgDir = path.join(
absPrjDirPath,
'build',
'node_modules',
'a-package@1.0.0'
);
const dir = babelUtil.getPackageDir(
path.join(pkgDir, 'path', 'to', 'module.js')
);
expect(dir).toEqual(pkgDir);
});
it('works for build scoped dependency module', () => {
const pkgDir = path.join(
absPrjDirPath,
'build',
'node_modules',
'@a-scoped%2Fpackage@1.0.0'
);
const dir = babelUtil.getPackageDir(
path.join(pkgDir, 'path', 'to', 'module.js')
);
expect(dir).toEqual(pkgDir);
});
});