diff --git a/packages/playwright/src/generators/configuration/configuration.spec.ts b/packages/playwright/src/generators/configuration/configuration.spec.ts index f4e52ac228..ed075b8e3e 100644 --- a/packages/playwright/src/generators/configuration/configuration.spec.ts +++ b/packages/playwright/src/generators/configuration/configuration.spec.ts @@ -110,5 +110,27 @@ describe('Playwright e2e configuration', () => { " `); }); + + it('should ignore Playwright output files in eslint config if used', async () => { + tree.write('eslint.config.mjs', `export default [{ ignores: [] }];`); + writeJson(tree, 'apps/myapp/package.json', { + name: '@proj/myapp', + }); + writeJson(tree, 'apps/myapp/tsconfig.json', { + include: [], + files: [], + references: [], + }); + + await configGenerator(tree, { + project: '@proj/myapp', + linter: 'eslint', + }); + + expect(tree.read('eslint.config.mjs', 'utf-8')).toMatchInlineSnapshot(` + "export default [{ ignores: ['**/test-output'] }]; + " + `); + }); }); }); diff --git a/packages/playwright/src/generators/configuration/configuration.ts b/packages/playwright/src/generators/configuration/configuration.ts index ba70913ff0..43ee1d532f 100644 --- a/packages/playwright/src/generators/configuration/configuration.ts +++ b/packages/playwright/src/generators/configuration/configuration.ts @@ -39,6 +39,7 @@ import type { ConfigurationGeneratorSchema, NormalizedGeneratorOptions, } from './schema'; +import { addIgnoresToLintConfig } from '@nx/eslint/src/generators/utils/eslint-file'; export function configurationGenerator( tree: Tree, @@ -186,7 +187,7 @@ export async function configurationGeneratorInternal( writeJson(tree, packageJsonPath, packageJson); } - ignoreTestOutput(tree); + ignoreTestOutput(tree, options); } const hasPlugin = readNxJson(tree).plugins?.some((p) => @@ -388,7 +389,16 @@ Rename or remove the existing e2e target.`); updateProjectConfiguration(tree, options.project, projectConfig); } -function ignoreTestOutput(tree: Tree): void { +function ignoreTestOutput( + tree: Tree, + options: ConfigurationGeneratorSchema +): void { + // Make sure playwright outputs are not linted. + if (options.linter === 'eslint') { + addIgnoresToLintConfig(tree, '', ['**/test-output']); + } + + // Handle gitignore if (!tree.exists('.gitignore')) { logger.warn(`Couldn't find a root .gitignore file to update.`); }