nx-esbuild-decorators
Version:
The Nx Plugin for esbuild contains executors and generators that support building applications using esbuild and also supports decorators
65 lines (54 loc) • 1.72 kB
text/typescript
import type { Tree } from '@nx/devkit';
import {
addProjectConfiguration,
readProjectConfiguration,
writeJson,
} from '@nx/devkit';
import { createTreeWithEmptyWorkspace } from '@nx/devkit/testing';
import configurationGenerator from './configuration';
describe('configurationGenerator', () => {
let tree: Tree;
beforeEach(() => {
tree = createTreeWithEmptyWorkspace();
});
it.each`
tsConfig | main
${'tsconfig.app.json'} | ${'main.ts'}
${'tsconfig.lib.json'} | ${'index.ts'}
`('should detect main and tsconfig paths', async ({ tsConfig, main }) => {
addProjectConfiguration(tree, 'mypkg', {
root: 'mypkg',
});
tree.write(`mypkg/src/${main}`, 'console.log("main");');
writeJson(tree, `mypkg/${tsConfig}`, {});
await configurationGenerator(tree, {
project: 'mypkg',
});
const project = readProjectConfiguration(tree, 'mypkg');
expect(project.targets.build.options).toEqual({
assets: [],
main: `mypkg/src/${main}`,
outputFileName: 'main.js',
outputPath: 'dist/mypkg',
tsConfig: `mypkg/${tsConfig}`,
});
});
it('should work for root projects', async () => {
addProjectConfiguration(tree, 'mypkg', {
root: '.',
});
tree.write(`src/main.ts`, 'console.log("main");');
writeJson(tree, `tsconfig.app.json`, {});
await configurationGenerator(tree, {
project: 'mypkg',
});
const project = readProjectConfiguration(tree, 'mypkg');
expect(project.targets.build.options).toEqual({
assets: [],
main: `src/main.ts`,
outputFileName: 'main.js',
outputPath: 'dist/mypkg',
tsConfig: `tsconfig.app.json`,
});
});
});