@@ -913,5 +913,87 @@ describe("CreateOrUpdateEnvironmentFileDriver", () => {
913
913
914
914
chai . assert ( result . isOk ( ) ) ;
915
915
} ) ;
916
+
917
+ it ( "should handle undefined ctx.ui and empty result values" , async ( ) => {
918
+ // Test with undefined ctx.ui
919
+ const argsWithUndefinedUI = {
920
+ envs : {
921
+ AZURE_OPENAI_API_KEY : "${{ AZURE_OPENAI_API_KEY }}" ,
922
+ AZURE_OPENAI_ENDPOINT : "${{ AZURE_OPENAI_ENDPOINT }}" ,
923
+ } ,
924
+ } ;
925
+ const contextWithoutUI = {
926
+ logProvider : new MockedLogProvider ( ) ,
927
+ projectPath : "/path/to/project" ,
928
+ ui : undefined ,
929
+ } as any ;
930
+
931
+ const resultWithUndefinedUI = await driver . askForOpenAIEnvironmentVariables (
932
+ contextWithoutUI ,
933
+ argsWithUndefinedUI ,
934
+ envOutput
935
+ ) ;
936
+
937
+ chai . assert ( resultWithUndefinedUI . isOk ( ) ) ;
938
+ chai . assert . equal ( envOutput . size , 0 ) ;
939
+ chai . assert . equal (
940
+ argsWithUndefinedUI . envs [ "AZURE_OPENAI_API_KEY" ] ,
941
+ "${{ AZURE_OPENAI_API_KEY }}"
942
+ ) ;
943
+ chai . assert . equal (
944
+ argsWithUndefinedUI . envs [ "AZURE_OPENAI_ENDPOINT" ] ,
945
+ "${{ AZURE_OPENAI_ENDPOINT }}"
946
+ ) ;
947
+
948
+ // Reset for next test
949
+ envOutput . clear ( ) ;
950
+
951
+ // Test with empty result value
952
+ const argsWithEmptyResult = {
953
+ envs : {
954
+ AZURE_OPENAI_API_KEY : "${{ AZURE_OPENAI_API_KEY }}" ,
955
+ } ,
956
+ } ;
957
+ sinon . stub ( mockedDriverContext . ui ! , "inputText" ) . resolves ( ok ( { result : "" } ) ) ;
958
+
959
+ const resultWithEmptyValue = await driver . askForOpenAIEnvironmentVariables (
960
+ mockedDriverContext ,
961
+ argsWithEmptyResult ,
962
+ envOutput
963
+ ) ;
964
+
965
+ chai . assert ( resultWithEmptyValue . isOk ( ) ) ;
966
+ chai . assert . equal ( envOutput . size , 0 ) ;
967
+ chai . assert . equal (
968
+ argsWithEmptyResult . envs [ "AZURE_OPENAI_API_KEY" ] ,
969
+ "${{ AZURE_OPENAI_API_KEY }}"
970
+ ) ;
971
+ } ) ;
972
+
973
+ it ( "should validate AZURE_OPENAI_ENDPOINT input and return error for invalid endpoint format" , async ( ) => {
974
+ const args = {
975
+ envs : {
976
+ AZURE_OPENAI_ENDPOINT : "${{ AZURE_OPENAI_ENDPOINT }}" ,
977
+ } ,
978
+ } ;
979
+ sinon . stub ( mockedDriverContext . ui ! , "inputText" ) . callsFake ( async ( options ) => {
980
+ const validationResult = ( options as any ) . validation ! ( "ftp://invalid-endpoint" ) ; // Simulate invalid endpoint
981
+ chai . assert . equal (
982
+ validationResult ,
983
+ getLocalizedString (
984
+ "driver.file.createOrUpdateEnvironmentFile.OpenAIDeploymentEndpoint.validation"
985
+ )
986
+ ) ;
987
+ return ok ( { result : "ftp://invalid-endpoint" } ) ;
988
+ } ) ;
989
+
990
+ const result = await driver . askForOpenAIEnvironmentVariables (
991
+ mockedDriverContext ,
992
+ args ,
993
+ envOutput
994
+ ) ;
995
+
996
+ chai . assert ( result . isOk ( ) ) ;
997
+ } ) ;
916
998
} ) ;
917
999
} ) ;
0 commit comments