Skip to content

Commit

Permalink
fix(react): respect unitTestRunner passed to the generator (#23383)
Browse files Browse the repository at this point in the history
closes: #22276
(cherry picked from commit 2e63056)
  • Loading branch information
ndcunningham authored and FrozenPandaz committed May 21, 2024
1 parent e610e2e commit 31236a1
Show file tree
Hide file tree
Showing 9 changed files with 26 additions and 74 deletions.
1 change: 0 additions & 1 deletion e2e/nx-init/src/nx-init-react.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -163,7 +163,6 @@ describe('nx init (for React - legacy)', () => {
);

const packageJson = readJson('package.json');
expect(packageJson.devDependencies['@nx/jest']).toBeUndefined();
expect(packageJson.dependencies['redux']).toBeDefined();
expect(packageJson.name).toEqual(appName);

Expand Down
16 changes: 16 additions & 0 deletions e2e/react/src/react-vite.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -151,4 +151,20 @@ describe('Build React applications and libraries with Vite', () => {
`dist/libs/${nonBuildableLib}/index.mjs`
);
}, 300_000);

it('should support bundling with Vite and Jest', async () => {
const viteApp = uniq('viteapp');

runCLI(
`generate @nx/react:app ${viteApp} --bundler=vite --unitTestRunner=jest --no-interactive`
);

const appTestResults = await runCLIAsync(`test ${viteApp}`);
expect(appTestResults.combinedOutput).toContain(
'Successfully ran target test'
);

await runCLIAsync(`build ${viteApp}`);
checkFilesExist(`dist/apps/${viteApp}/index.html`);
}, 300_000);
});
2 changes: 1 addition & 1 deletion e2e/web/src/web-vite.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ describe('Web Components Applications with bundler set as vite', () => {

const testResults = await runCLIAsync(`test ${appName}`);

expect(testResults.combinedOutput).toContain('Tests 2 passed (2)');
expect(testResults.combinedOutput).toContain(`PASS ${appName}`);

const lintE2eResults = runCLI(`lint ${appName}-e2e`);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,19 +38,6 @@ nxViteTsPaths()],
},
test: {
globals: true,
cache: {
dir: '../node_modules/.vitest/my-vite-app'
},
environment: 'jsdom',
include: ['src/**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}'],
reporters: ['default'],
coverage: {
reportsDirectory: '../coverage/my-vite-app',
provider: 'v8',
}
},
});"
`;
Original file line number Diff line number Diff line change
Expand Up @@ -126,20 +126,7 @@ nxViteTsPaths()],
},
test: {
globals: true,
cache: {
dir: '../node_modules/.vitest/my-app'
},
environment: 'jsdom',
include: ['src/**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}'],
reporters: ['default'],
coverage: {
reportsDirectory: '../coverage/my-app',
provider: 'v8',
}
},
});"
`;

Expand Down Expand Up @@ -217,20 +204,7 @@ nxViteTsPaths()],
},
test: {
globals: true,
cache: {
dir: '../node_modules/.vitest/my-app'
},
environment: 'jsdom',
include: ['src/**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}'],
reporters: ['default'],
coverage: {
reportsDirectory: '../coverage/my-app',
provider: 'v8',
}
},
});"
`;

Expand Down Expand Up @@ -355,20 +329,7 @@ nxViteTsPaths()],
},
test: {
globals: true,
cache: {
dir: '../node_modules/.vitest/my-app'
},
environment: 'jsdom',
include: ['src/**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}'],
reporters: ['default'],
coverage: {
reportsDirectory: '../coverage/my-app',
provider: 'v8',
}
},
});"
`;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -95,10 +95,6 @@ export async function normalizeOptions<T extends Schema = Schema>(

assertValidStyle(options.style);

if (options.bundler === 'vite' && options.unitTestRunner !== 'none') {
options.unitTestRunner = 'vitest';
}

const normalized = {
...options,
name: names(options.name).fileName,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -202,12 +202,12 @@ describe('web app generator (legacy)', () => {
},
},
"test": {
"executor": "@nx/vite:test",
"executor": "@nx/jest:jest",
"options": {
"reportsDirectory": "../coverage/my-vite-app",
"jestConfig": "my-vite-app/jest.config.ts",
},
"outputs": [
"{options.reportsDirectory}",
"{workspaceRoot}/coverage/{projectRoot}",
],
},
},
Expand Down
7 changes: 2 additions & 5 deletions packages/web/src/generators/application/application.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -425,7 +425,7 @@ describe('app', () => {
// Updated this test to match the way we do this for React
// When user chooses Vite as bundler and they choose to generate unit tests
// then use vitest
it('--bundler=vite --unitTestRunner=jest - still generate with vitest', async () => {
it('--bundler=vite --unitTestRunner=jest respects unitTestRunner given', async () => {
await applicationGenerator(tree, {
name: 'my-vite-app',

Expand All @@ -435,10 +435,7 @@ describe('app', () => {
addPlugin: true,
});
expect(tree.exists('my-vite-app/vite.config.ts')).toBeTruthy();
expect(tree.read('my-vite-app/vite.config.ts', 'utf-8')).toContain(
'test: {'
);
expect(tree.exists('my-vite-app/jest.config.ts')).toBeFalsy();
expect(tree.exists('my-vite-app/jest.config.ts')).toBeTruthy();
});

it('--bundler=vite --unitTestRunner=none', async () => {
Expand Down
4 changes: 0 additions & 4 deletions packages/web/src/generators/application/application.ts
Original file line number Diff line number Diff line change
Expand Up @@ -522,10 +522,6 @@ async function normalizeOptions(
? options.tags.split(',').map((s) => s.trim())
: [];

if (options.bundler === 'vite' && options.unitTestRunner !== 'none') {
options.unitTestRunner = 'vitest';
}

options.style = options.style || 'css';
options.linter = options.linter || ('eslint' as Linter.EsLint);
options.unitTestRunner = options.unitTestRunner || 'jest';
Expand Down

0 comments on commit 31236a1

Please sign in to comment.