UNPKG

liferay-npm-bundler-preset-reactjs

Version:

liferay npm bundler preset react

175 lines (144 loc) 3.86 kB
/** * 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); }); });