@@ -38,8 +38,9 @@ for (let packageManager of SUPPORTED_PACKAGE_MANAGERS) {
3838 addonDir = join ( tmpDir , addonName ) ;
3939 await execa ( {
4040 cwd : tmpDir ,
41+ extendEnv : false ,
4142 } ) `${ localEmberCli } addon ${ addonName } -b ${ blueprintPath } --skip-npm --skip-git --prefer-local true --${ packageManager } ` ;
42- await execa ( { cwd : addonDir } ) `${ packageManager } install` ;
43+ await execa ( { cwd : addonDir , extendEnv : false } ) `${ packageManager } install` ;
4344 } ) ;
4445
4546 it ( 'is using the correct packager' , async ( ) => {
@@ -99,13 +100,16 @@ for (let packageManager of SUPPORTED_PACKAGE_MANAGERS) {
99100 // Tests are additive, so when running them in order, we want to check linting
100101 // before we add files from fixtures
101102 it ( 'lints with no fixtures all pass' , async ( ) => {
102- let { exitCode } = await execa ( { cwd : addonDir } ) `pnpm lint` ;
103+ let { exitCode } = await execa ( { cwd : addonDir , extendEnv : false } ) `pnpm lint` ;
103104
104105 expect ( exitCode ) . toEqual ( 0 ) ;
105106 } ) ;
106107
107108 it ( 'lint:fix with no fixtures' , async ( ) => {
108- let { exitCode } = await execa ( { cwd : addonDir } ) `${ packageManager } run lint:fix` ;
109+ let { exitCode } = await execa ( {
110+ cwd : addonDir ,
111+ extendEnv : false ,
112+ } ) `${ packageManager } run lint:fix` ;
109113
110114 expect ( exitCode ) . toEqual ( 0 ) ;
111115 } ) ;
@@ -124,16 +128,27 @@ for (let packageManager of SUPPORTED_PACKAGE_MANAGERS) {
124128
125129 let testFixture = fixturify . readSync ( './fixtures/rendering-tests' ) ;
126130 fixturify . writeSync ( join ( addonDir , 'tests/rendering' ) , testFixture ) ;
131+
132+ fixturify . writeSync (
133+ join ( addonDir , 'tests/unit' ) ,
134+ fixturify . readSync ( './fixtures/build-mode-tests' ) ,
135+ ) ;
127136 } ) ;
128137
129138 it ( 'lint:fix' , async ( ) => {
130- let { exitCode } = await execa ( { cwd : addonDir } ) `${ packageManager } run lint:fix` ;
139+ let { exitCode } = await execa ( {
140+ cwd : addonDir ,
141+ extendEnv : false ,
142+ } ) `${ packageManager } run lint:fix` ;
131143
132144 expect ( exitCode ) . toEqual ( 0 ) ;
133145 } ) ;
134146
135147 it ( 'build' , async ( ) => {
136- let buildResult = await execa ( { cwd : addonDir } ) `${ packageManager } run build` ;
148+ let buildResult = await execa ( {
149+ cwd : addonDir ,
150+ extendEnv : false ,
151+ } ) `${ packageManager } run build` ;
137152
138153 expect ( buildResult . exitCode ) . toEqual ( 0 ) ;
139154
@@ -146,13 +161,29 @@ for (let packageManager of SUPPORTED_PACKAGE_MANAGERS) {
146161 // It's important that we ensure that dist directory is empty for this test, because
147162 await fs . rm ( join ( addonDir , 'dist' ) , { recursive : true , force : true } ) ;
148163
149- let testResult = await execa ( { cwd : addonDir } ) `${ packageManager } run test` ;
164+ let safeEnv = { ...process . env } ;
165+ for ( let key of Object . keys ( safeEnv ) ) {
166+ if ( key . startsWith ( 'EMBER_' ) || key . startsWith ( 'VITE_' ) || key . startsWith ( 'NODE_' ) ) {
167+ delete safeEnv [ key ] ;
168+ }
169+ }
170+
171+ let testResult = await execa ( {
172+ cwd : addonDir ,
173+ extendEnv : false ,
174+ // a modified env required with extendEnv, else we still inherit/merge the env of vitest
175+ // which overrides our NODE_ENV from our .env.development file (read by vite)
176+ // (because in-shell ENV vars override .env files)
177+ env : safeEnv ,
178+ } ) `${ packageManager } run test` ;
150179
151180 expect ( testResult . exitCode ) . toEqual ( 0 ) ;
152181
182+ expect ( testResult . stdout ) . includes ( 'debug utils remain in the build: assert' ) ;
183+ expect ( testResult . stdout ) . includes ( 'debug utils remain in the build: DEBUG' ) ;
153184 expect ( testResult . stdout ) . includes (
154- `# tests 2
155- # pass 2
185+ `# tests 6
186+ # pass 6
156187# skip 0
157188# todo 0
158189# fail 0
0 commit comments