nx/packages/webpack/src/plugins/plugin.spec.ts
Leosvel Pérez Espinosa 95a6e6864d
feat(webpack): add createNodesV2 for plugin (#26588)
<!-- Please make sure you have read the submission guidelines before
posting an PR -->
<!--
https://github.com/nrwl/nx/blob/master/CONTRIBUTING.md#-submitting-a-pr
-->

<!-- Please make sure that your commit message follows our format -->
<!-- Example: `fix(nx): must begin with lowercase` -->

<!-- If this is a particularly complex change or feature addition, you
can request a dedicated Nx release for this pull request branch. Mention
someone from the Nx team or the `@nrwl/nx-pipelines-reviewers` and they
will confirm if the PR warrants its own release for testing purposes,
and generate it for you if appropriate. -->

## Current Behavior
<!-- This is the behavior we have today -->

There is no implementation for `createNodesV2`.

## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->

There should be an implementation for `createNodesV2`.

## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->

Fixes #
2024-06-18 15:06:08 +02:00

62 lines
1.5 KiB
TypeScript

import { CreateNodesContext } from '@nx/devkit';
import { createNodesV2 } from './plugin';
import { TempFs } from 'nx/src/internal-testing-utils/temp-fs';
import { join } from 'path';
describe('@nx/webpack/plugin', () => {
let createNodesFunction = createNodesV2[1];
let context: CreateNodesContext;
let tempFs: TempFs;
beforeEach(() => {
tempFs = new TempFs('webpack-plugin');
context = {
nxJsonConfiguration: {
namedInputs: {
default: ['{projectRoot}/**/*'],
production: ['!{projectRoot}/**/*.spec.ts'],
},
},
workspaceRoot: tempFs.tempDir,
configFiles: [],
};
tempFs.createFileSync(
'my-app/project.json',
JSON.stringify({ name: 'my-app' })
);
tempFs.createFileSync('my-app/webpack.config.js', '');
});
afterEach(() => {
jest.resetModules();
});
it('should create nodes', async () => {
mockWebpackConfig({
output: {
path: 'dist/foo',
},
});
const nodes = await createNodesFunction(
['my-app/webpack.config.js'],
{
buildTargetName: 'build-something',
serveTargetName: 'my-serve',
previewTargetName: 'preview-site',
serveStaticTargetName: 'serve-static',
},
context
);
expect(nodes).toMatchSnapshot();
});
function mockWebpackConfig(config: any) {
jest.mock(join(tempFs.tempDir, 'my-app/webpack.config.js'), () => config, {
virtual: true,
});
}
});