@@ -12,8 +12,10 @@ const execFileAsync = promisify(execFile);
1212 */
1313function parseJsonOutput ( stdout : string ) : unknown {
1414 const lines = stdout . trim ( ) . split ( '\n' ) ;
15+
1516 // Get the last non-empty line which should be the JSON output
1617 const jsonLine = lines . filter ( ( line ) => line . trim ( ) ) . pop ( ) || '' ;
18+
1719 return JSON . parse ( jsonLine ) ;
1820}
1921
@@ -27,30 +29,22 @@ describe('CLI Usage', () => {
2729 const nodePath = process . execPath ;
2830
2931 beforeAll ( async ( ) => {
30- // Create test env directory
3132 await mkdir ( testEnvDir , { recursive : true } ) ;
3233
33- // Create .env.production
3434 await writeFile ( join ( testEnvDir , '.env.production' ) , 'VITE_API_URL=https://prod.api.com\nVITE_MODE=production\n' ) ;
3535
36- // Create .env.development
3736 await writeFile ( join ( testEnvDir , '.env.development' ) , 'VITE_API_URL=https://dev.api.com\nVITE_MODE=development\n' ) ;
3837
39- // Create .env.test with mixed prefixes
4038 await writeFile ( join ( testEnvDir , '.env.test' ) , 'VITE_FOO=bar\nPUBLIC_BAZ=qux\nSECRET=hidden\n' ) ;
4139
42- // Create .env.staging for variable expansion test
4340 await writeFile ( join ( testEnvDir , '.env.staging' ) , 'BASE_PORT=3000\nEXPANDED_PORT=http://localhost:${BASE_PORT}\n' ) ;
4441
45- // Create .env (base file) - Note: Vite only loads vars with prefix by default
4642 await writeFile ( join ( testEnvDir , '.env' ) , 'VITE_BASE=always-loaded\n' ) ;
4743
48- // Create .env.cascade for testing cascading
4944 await writeFile ( join ( testEnvDir , '.env.cascade' ) , 'VITE_API_URL=from-cascade\nVITE_OVERRIDE=from-mode\n' ) ;
5045 } ) ;
5146
5247 afterAll ( async ( ) => {
53- // Clean up test env directory
5448 await rm ( testEnvDir , { recursive : true , force : true } ) ;
5549 } ) ;
5650
0 commit comments