@@ -2,7 +2,6 @@ import { ng } from '../../utils/process';
22import { applyVitestBuilder } from '../../utils/vitest' ;
33import assert from 'node:assert' ;
44import { installPackage } from '../../utils/packages' ;
5- import { exec } from '../../utils/process' ;
65import { updateJsonFile } from '../../utils/project' ;
76import { readFile } from '../../utils/fs' ;
87
@@ -27,33 +26,7 @@ export default async function () {
2726
2827 const artifactCount = 100 ;
2928 const initialTestCount = 1 ;
30- const generatedFiles : string [ ] = [ ] ;
31-
32- // Generate a mix of components, services, and pipes
33- for ( let i = 0 ; i < artifactCount ; i ++ ) {
34- const type = i % 3 ;
35- const name = `test-artifact${ i } ` ;
36- let generateType ;
37- let fileSuffix ;
38-
39- switch ( type ) {
40- case 0 :
41- generateType = 'component' ;
42- fileSuffix = '.ts' ;
43- break ;
44- case 1 :
45- generateType = 'service' ;
46- fileSuffix = '.ts' ;
47- break ;
48- default :
49- generateType = 'pipe' ;
50- fileSuffix = '-pipe.ts' ;
51- break ;
52- }
53-
54- await ng ( 'generate' , generateType , name , '--skip-tests=false' ) ;
55- generatedFiles . push ( `${ name } ${ fileSuffix } ` ) ;
56- }
29+ const generatedFiles = await generateArtifactsInBatches ( artifactCount ) ;
5730
5831 const totalTests = initialTestCount + artifactCount ;
5932 const expectedMessage = new RegExp ( `${ totalTests } passed` ) ;
@@ -78,7 +51,6 @@ export default async function () {
7851 // Setup for browser mode
7952 await installPackage ( 'playwright@1' ) ;
8053 await installPackage ( '@vitest/browser-playwright@4' ) ;
81- await exec ( 'npx' , 'playwright' , 'install' , 'chromium' , '--only-shell' ) ;
8254
8355 // Run tests in browser mode with coverage
8456 const { stdout : browserStdout } = await ng (
@@ -102,3 +74,42 @@ export default async function () {
10274 assert . ok ( found , `Expected ${ file } to be in the browser coverage report.` ) ;
10375 }
10476}
77+
78+ async function generateArtifactsInBatches ( artifactCount : number ) : Promise < string [ ] > {
79+ const BATCH_SIZE = 5 ;
80+ const generatedFiles : string [ ] = [ ] ;
81+ let commands : Promise < any > [ ] = [ ] ;
82+
83+ for ( let i = 0 ; i < artifactCount ; i ++ ) {
84+ const type = i % 3 ;
85+ const name = `test-artifact-${ i } ` ;
86+
87+ let generateType : string ;
88+ let fileSuffix : string ;
89+
90+ switch ( type ) {
91+ case 0 :
92+ generateType = 'component' ;
93+ fileSuffix = '.ts' ;
94+ break ;
95+ case 1 :
96+ generateType = 'service' ;
97+ fileSuffix = '.ts' ;
98+ break ;
99+ default :
100+ generateType = 'pipe' ;
101+ fileSuffix = '-pipe.ts' ;
102+ break ;
103+ }
104+
105+ commands . push ( ng ( 'generate' , generateType , name , '--skip-tests=false' ) ) ;
106+ generatedFiles . push ( `${ name } ${ fileSuffix } ` ) ;
107+
108+ if ( commands . length === BATCH_SIZE || i === artifactCount - 1 ) {
109+ await Promise . all ( commands ) ;
110+ commands = [ ] ;
111+ }
112+ }
113+
114+ return generatedFiles ;
115+ }
0 commit comments