@@ -31,6 +31,7 @@ describe('azureCli', () => {
3131 {
3232 PATH : process . env [ 'PATH' ] ,
3333 AZURE_CONFIG_DIR : expect . any ( String ) ,
34+ AZURE_EXTENSION_DIR : expect . any ( String ) ,
3435 } ,
3536 ) ;
3637 expect ( commonMock . runCliCommand ) . toHaveBeenCalledWith (
@@ -39,6 +40,7 @@ describe('azureCli', () => {
3940 {
4041 PATH : process . env [ 'PATH' ] ,
4142 AZURE_CONFIG_DIR : expect . any ( String ) ,
43+ AZURE_EXTENSION_DIR : expect . any ( String ) ,
4244 } ,
4345 ) ;
4446 } ) ;
@@ -64,6 +66,7 @@ describe('azureCli', () => {
6466 {
6567 PATH : process . env [ 'PATH' ] ,
6668 AZURE_CONFIG_DIR : expect . any ( String ) ,
69+ AZURE_EXTENSION_DIR : expect . any ( String ) ,
6770 } ,
6871 ) ;
6972 expect ( commonMock . runCliCommand ) . toHaveBeenNthCalledWith (
@@ -73,6 +76,7 @@ describe('azureCli', () => {
7376 {
7477 PATH : process . env [ 'PATH' ] ,
7578 AZURE_CONFIG_DIR : expect . any ( String ) ,
79+ AZURE_EXTENSION_DIR : expect . any ( String ) ,
7680 } ,
7781 ) ;
7882 expect ( commonMock . runCliCommand ) . toHaveBeenNthCalledWith (
@@ -82,6 +86,7 @@ describe('azureCli', () => {
8286 {
8387 PATH : process . env [ 'PATH' ] ,
8488 AZURE_CONFIG_DIR : expect . any ( String ) ,
89+ AZURE_EXTENSION_DIR : expect . any ( String ) ,
8590 } ,
8691 ) ;
8792 } ) ;
@@ -105,6 +110,7 @@ describe('azureCli', () => {
105110 'az' ,
106111 {
107112 PATH : process . env [ 'PATH' ] ,
113+ AZURE_EXTENSION_DIR : expect . any ( String ) ,
108114 } ,
109115 ) ;
110116 expect ( commonMock . runCliCommand ) . toHaveBeenNthCalledWith (
@@ -113,6 +119,7 @@ describe('azureCli', () => {
113119 'az' ,
114120 {
115121 PATH : process . env [ 'PATH' ] ,
122+ AZURE_EXTENSION_DIR : expect . any ( String ) ,
116123 } ,
117124 ) ;
118125 } ) ;
@@ -132,6 +139,7 @@ describe('azureCli', () => {
132139 'az' ,
133140 {
134141 PATH : process . env [ 'PATH' ] ,
142+ AZURE_EXTENSION_DIR : expect . any ( String ) ,
135143 } ,
136144 ) ;
137145 process . env = originalEnv ;
@@ -143,6 +151,7 @@ describe('azureCli', () => {
143151 ...originalEnv ,
144152 PATH : '/mock/path' ,
145153 AZURE_CONFIG_DIR : '/mock/config/dir' ,
154+ AZURE_EXTENSION_DIR : '/mock/config/dir/extensions' ,
146155 } ;
147156
148157 commonMock . runCliCommand . mockResolvedValue ( 'mock result' ) ;
@@ -157,6 +166,44 @@ describe('azureCli', () => {
157166 {
158167 PATH : process . env [ 'PATH' ] ,
159168 AZURE_CONFIG_DIR : process . env [ 'AZURE_CONFIG_DIR' ] ,
169+ AZURE_EXTENSION_DIR : '/mock/config/dir/extensions' ,
170+ } ,
171+ ) ;
172+ process . env = originalEnv ;
173+ } ) ;
174+
175+ test ( 'should use temp config dir but preserve extension dir when useHostSession is false and AZURE_CONFIG_DIR is set' , async ( ) => {
176+ const originalEnv = process . env ;
177+ process . env = {
178+ ...originalEnv ,
179+ PATH : '/mock/path' ,
180+ AZURE_CONFIG_DIR : '/mock/config/dir' ,
181+ AZURE_EXTENSION_DIR : '/mock/config/dir/extensions' ,
182+ } ;
183+
184+ commonMock . runCliCommand . mockResolvedValueOnce ( 'login result' ) ;
185+ commonMock . runCliCommand . mockResolvedValueOnce ( 'mock result' ) ;
186+
187+ const result = await runCommand ( 'some command' , credentials , false ) ;
188+
189+ expect ( result ) . toBe ( 'mock result' ) ;
190+ expect ( commonMock . runCliCommand ) . toHaveBeenCalledTimes ( 2 ) ;
191+ expect ( commonMock . runCliCommand ) . toHaveBeenCalledWith (
192+ `login --service-principal --username ${ credentials . clientId } --password ${ credentials . clientSecret } --tenant ${ credentials . tenantId } ` ,
193+ 'az' ,
194+ {
195+ PATH : process . env [ 'PATH' ] ,
196+ AZURE_CONFIG_DIR : expect . any ( String ) ,
197+ AZURE_EXTENSION_DIR : '/mock/config/dir/extensions' ,
198+ } ,
199+ ) ;
200+ expect ( commonMock . runCliCommand ) . toHaveBeenCalledWith (
201+ 'some command' ,
202+ 'az' ,
203+ {
204+ PATH : process . env [ 'PATH' ] ,
205+ AZURE_CONFIG_DIR : expect . any ( String ) ,
206+ AZURE_EXTENSION_DIR : '/mock/config/dir/extensions' ,
160207 } ,
161208 ) ;
162209 process . env = originalEnv ;
@@ -176,6 +223,7 @@ describe('azureCli', () => {
176223 {
177224 PATH : process . env [ 'PATH' ] ,
178225 AZURE_CONFIG_DIR : expect . any ( String ) ,
226+ AZURE_EXTENSION_DIR : expect . any ( String ) ,
179227 } ,
180228 ) ;
181229 } ) ;
@@ -198,6 +246,7 @@ describe('azureCli', () => {
198246 {
199247 PATH : process . env [ 'PATH' ] ,
200248 AZURE_CONFIG_DIR : expect . any ( String ) ,
249+ AZURE_EXTENSION_DIR : expect . any ( String ) ,
201250 } ,
202251 ) ;
203252 } ) ;
0 commit comments