@@ -9,6 +9,8 @@ import * as deployClientModule from "../../../core/deploy-client.js";
99import { deploy } from "./deploy.js" ;
1010import * as loginModule from "../login/login.js" ;
1111import { loadPackageJson } from "../../../core/utils/json.js" ;
12+ import { DEFAULT_VERSION , SUPPORTED_VERSIONS } from "../../../core/constants.js" ;
13+ import * as optionsModule from "../../../core/utils/options.js" ;
1214
1315const pkg = loadPackageJson ( ) ;
1416
@@ -269,5 +271,41 @@ describe("deploy", () => {
269271 expect ( logger . error ) . toHaveBeenCalledWith ( "The deployment binary exited with code 1." ) ;
270272 expect ( exitSpy ) . not . toHaveBeenCalled ( ) ;
271273 } ) ;
274+
275+ it ( "should pass correct FUNCTION_LANGUAGE_VERSION for python when only apiLanguage is specified" , async ( ) => {
276+ vi . spyOn ( optionsModule , "isUserOrConfigOption" ) . mockImplementation ( ( option ) => option === "apiLanguage" ) ;
277+
278+ await deploy ( { outputLocation : "/test-output" , dryRun : false , apiLanguage : "python" } ) ;
279+
280+ const spawnCall = vi . mocked ( spawn ) . mock . calls [ 0 ] ;
281+ const env = spawnCall [ 2 ] ?. env as Record < string , string > ;
282+ expect ( env . FUNCTION_LANGUAGE ) . toBe ( "python" ) ;
283+ expect ( env . FUNCTION_LANGUAGE_VERSION ) . toBe ( DEFAULT_VERSION . Python ) ;
284+ expect ( SUPPORTED_VERSIONS . Python ) . toContain ( env . FUNCTION_LANGUAGE_VERSION ) ;
285+ } ) ;
286+
287+ it ( "should pass correct FUNCTION_LANGUAGE_VERSION for dotnet when only apiLanguage is specified" , async ( ) => {
288+ vi . spyOn ( optionsModule , "isUserOrConfigOption" ) . mockImplementation ( ( option ) => option === "apiLanguage" ) ;
289+
290+ await deploy ( { outputLocation : "/test-output" , dryRun : false , apiLanguage : "dotnet" } ) ;
291+
292+ const spawnCall = vi . mocked ( spawn ) . mock . calls [ 0 ] ;
293+ const env = spawnCall [ 2 ] ?. env as Record < string , string > ;
294+ expect ( env . FUNCTION_LANGUAGE ) . toBe ( "dotnet" ) ;
295+ expect ( env . FUNCTION_LANGUAGE_VERSION ) . toBe ( DEFAULT_VERSION . Dotnet ) ;
296+ expect ( SUPPORTED_VERSIONS . Dotnet ) . toContain ( env . FUNCTION_LANGUAGE_VERSION ) ;
297+ } ) ;
298+
299+ it ( "should pass correct FUNCTION_LANGUAGE_VERSION for dotnetisolated when only apiLanguage is specified" , async ( ) => {
300+ vi . spyOn ( optionsModule , "isUserOrConfigOption" ) . mockImplementation ( ( option ) => option === "apiLanguage" ) ;
301+
302+ await deploy ( { outputLocation : "/test-output" , dryRun : false , apiLanguage : "dotnetisolated" } ) ;
303+
304+ const spawnCall = vi . mocked ( spawn ) . mock . calls [ 0 ] ;
305+ const env = spawnCall [ 2 ] ?. env as Record < string , string > ;
306+ expect ( env . FUNCTION_LANGUAGE ) . toBe ( "dotnetisolated" ) ;
307+ expect ( env . FUNCTION_LANGUAGE_VERSION ) . toBe ( DEFAULT_VERSION . DotnetIsolated ) ;
308+ expect ( SUPPORTED_VERSIONS . DotnetIsolated ) . toContain ( env . FUNCTION_LANGUAGE_VERSION ) ;
309+ } ) ;
272310 } ) ;
273311} ) ;
0 commit comments