1+ import { getPackageManagerCommand } from '@nx/devkit' ;
12import { createTestProject , isLocalNxMatchingLatestFeatureVersion , runNxCommand } from '@nxrocks/common/testing' ;
2- import { execSync , ExecSyncOptions } from 'child_process' ;
3+ import { execSync } from 'child_process' ;
34import { rmSync } from 'fs-extra' ;
45
56process . env . NODE_OPTIONS = "--max-old-space-size=8192" ; // to avoid oom error during the tests
67
78let projectDirectory : string ;
89
9- const execSyncOptions : ( cwd ?:string ) => ExecSyncOptions = ( cwd :string = projectDirectory ) => ( {
10+ const execSyncOptions : ( cwd ?:string ) => { silenceError ?: boolean ; env ?: NodeJS . ProcessEnv ; cwd ?: string } = ( cwd :string = projectDirectory ) => ( {
1011 cwd : cwd ,
1112 env : {
1213 ...process . env ,
@@ -15,7 +16,7 @@ const execSyncOptions: (cwd?:string) => ExecSyncOptions = (cwd:string = projectD
1516 GIT_AUTHOR_NAME : 'Smoke Test CI' ,
1617 GIT_AUTHOR_EMAIL : 'no-reply@fake.com' ,
1718 } ,
18- stdio : 'inherit ' ,
19+ silentError : 'false ' ,
1920} ) ;
2021
2122const bootapp = 'bootapp' ;
@@ -43,14 +44,14 @@ describe('nxrocks smoke tests', () => {
4344 } ) ;
4445
4546 it . each `
46- pkgManager | runCommand | addCommand | workspaceVersion | pluginVersion
47- ${ 'npm' } | ${ 'npx' } | ${ 'npm i' } | ${ 'latest' } | ${ '0.0.0-e2e' }
48- ${ 'yarn' } | ${ 'yarn' } | ${ 'yarn add' } | ${ 'latest' } | ${ '0.0.0-e2e' }
49- ${ 'pnpm' } | ${ 'pnpm exec' } | ${ 'pnpm add' } | ${ 'latest' } | ${ '0.0.0-e2e' }
50- ${ 'npm' } | ${ 'npx' } | ${ 'npm i' } | ${ 'local' } | ${ '0.0.0-e2e' }
51- ${ 'yarn' } | ${ 'yarn' } | ${ 'yarn add' } | ${ 'local' } | ${ '0.0.0-e2e' }
52- ${ 'pnpm' } | ${ 'pnpm exec' } | ${ 'pnpm add' } | ${ 'local' } | ${ '0.0.0-e2e' }
53- ` ( `should sucessfully run using '$workspaceVersion' Nx workspace, $pluginVersion plugins version and $pkgManager package manager` , async ( { pkgManager, runCommand , addCommand , workspaceVersion, pluginVersion } ) => {
47+ pkgManager | workspaceVersion | pluginVersion
48+ ${ 'npm' } | ${ 'latest' } | ${ '0.0.0-e2e' }
49+ ${ 'yarn' } | ${ 'latest' } | ${ '0.0.0-e2e' }
50+ ${ 'pnpm' } | ${ 'latest' } | ${ '0.0.0-e2e' }
51+ ${ 'npm' } | ${ 'local' } | ${ '0.0.0-e2e' }
52+ ${ 'yarn' } | ${ 'local' } | ${ '0.0.0-e2e' }
53+ ${ 'pnpm' } | ${ 'local' } | ${ '0.0.0-e2e' }
54+ ` ( `should sucessfully run using '$workspaceVersion' Nx workspace, $pluginVersion plugins version and $pkgManager package manager` , async ( { pkgManager, workspaceVersion, pluginVersion } ) => {
5455
5556 if ( ! process . env . CI && ! process . env . FORCE_SMOKE_TESTS ) {
5657 console . log ( 'Skipping smoke test because not running on CI and FORCE_SMOKE_TESTS is not set' ) ;
@@ -75,72 +76,72 @@ describe('nxrocks smoke tests', () => {
7576 `@nxrocks/nx-ktor@${ pluginVersion } ` ,
7677 ] . join ( ' ' ) ;
7778
78- execSync ( `${ addCommand } ${ pluginPkgs } ` , execSyncOptions ( projectDirectory ) ) ;
79+ execSync ( `${ getPackageManagerCommand ( pkgManager ) . addDev } ${ pluginPkgs } ` , execSyncOptions ( projectDirectory ) ) ;
7980
8081
8182 runNxCommand (
8283 `generate @nxrocks/nx-spring-boot:new ${ bootapp } --skip-format=false --projectType application --no-interactive` ,
83- runCommand ,
84+ pkgManager ,
8485 execSyncOptions ( ) ,
8586 ) ;
8687 runNxCommand (
8788 `generate @nxrocks/nx-spring-boot:new ${ bootlib } --skip-format=false --projectType library --no-interactive` ,
88- runCommand ,
89+ pkgManager ,
8990 execSyncOptions ( ) ,
9091 ) ;
9192
9293 runNxCommand (
9394 `generate @nxrocks/nx-quarkus:new ${ quarkusapp } --skip-format=false --projectType application --no-interactive` ,
94- runCommand ,
95+ pkgManager ,
9596 execSyncOptions ( ) ,
9697 ) ;
9798 runNxCommand (
9899 `generate @nxrocks/nx-quarkus:new ${ quarkuslib } --skip-format=false --projectType library --no-interactive` ,
99- runCommand ,
100+ pkgManager ,
100101 execSyncOptions ( ) ,
101102 ) ;
102103
103104 runNxCommand (
104105 `generate @nxrocks/nx-micronaut:new ${ mnApp } --skip-format=false --no-interactive` ,
105- runCommand ,
106+ pkgManager ,
106107 execSyncOptions ( ) ,
107108 ) ;
108109
109110 runNxCommand (
110111 `generate @nxrocks/nx-melos:init --scriptNameSeparator=-` ,
111- runCommand ,
112+ pkgManager ,
112113 execSyncOptions ( ) ,
113114 ) ;
114115
115116 runNxCommand (
116117 `generate @nxrocks/nx-ktor:new ${ krApp } --skip-format=false --no-interactive` ,
117- runCommand ,
118+ pkgManager ,
118119 execSyncOptions ( ) ,
119120 ) ;
120121
121122 runNxCommand (
122123 `generate @nxrocks/nx-flutter:new ${ flutterapp } --template app --no-interactive` ,
123- runCommand ,
124+ pkgManager ,
124125 execSyncOptions ( ) ,
125126 ) ;
126127 runNxCommand (
127128 `generate @nxrocks/nx-flutter:new ${ flutterlib } --template plugin --no-interactive` ,
128- runCommand ,
129+ pkgManager ,
129130 execSyncOptions ( ) ,
130131 ) ;
131132
132133 execSync ( `git add -A` , execSyncOptions ( ) ) ;
133134 execSync ( `git commit -am "chore: scaffold projects"` , execSyncOptions ( ) ) ;
134135
135- runNxCommand ( `clean ${ bootapp } ` , runCommand , execSyncOptions ( ) ) ;
136- runNxCommand ( `clean ${ bootlib } ` , runCommand , execSyncOptions ( ) ) ;
137- runNxCommand ( `clean ${ quarkusapp } ` , runCommand , execSyncOptions ( ) ) ;
138- runNxCommand ( `clean ${ quarkuslib } ` , runCommand , execSyncOptions ( ) ) ;
139- runNxCommand ( `clean ${ mnApp } ` , runCommand , execSyncOptions ( ) ) ;
140- runNxCommand ( `melos-bootstrap` , runCommand , execSyncOptions ( ) ) ;
141- runNxCommand ( `clean ${ flutterapp } ` , runCommand , execSyncOptions ( ) ) ;
142- runNxCommand ( `clean ${ flutterlib } ` , runCommand , execSyncOptions ( ) ) ;
143- runNxCommand ( `clean ${ krApp } ` , runCommand , execSyncOptions ( ) ) ;
136+ runNxCommand ( `clean ${ bootapp } ` , pkgManager , execSyncOptions ( ) ) ;
137+ runNxCommand ( `clean ${ bootlib } ` , pkgManager , execSyncOptions ( ) ) ;
138+ runNxCommand ( `clean ${ quarkusapp } ` , pkgManager , execSyncOptions ( ) ) ;
139+ runNxCommand ( `clean ${ quarkuslib } ` , pkgManager , execSyncOptions ( ) ) ;
140+ runNxCommand ( `clean ${ mnApp } ` , pkgManager , execSyncOptions ( ) ) ;
141+ runNxCommand ( `melos-bootstrap` , pkgManager , execSyncOptions ( ) ) ;
142+ runNxCommand ( `clean ${ flutterapp } ` , pkgManager , execSyncOptions ( ) ) ;
143+ runNxCommand ( `clean ${ flutterlib } ` , pkgManager , execSyncOptions ( ) ) ;
144+ runNxCommand ( `clean ${ krApp } ` , pkgManager , execSyncOptions ( ) ) ;
144145
145146
146147 expect ( true ) . toBeTruthy ( ) ;
0 commit comments