@@ -35,6 +35,9 @@ public void LoadConfig_ShouldReturnDefaultConfig_WhenNoSourcesAvailable()
3535 config . Environment . Should ( ) . BeNull ( ) ;
3636 config . RootSuite . Should ( ) . BeNull ( ) ;
3737 config . Debug . Should ( ) . BeFalse ( ) ;
38+ config . Logging . Should ( ) . NotBeNull ( ) ;
39+ config . Logging . Console . Should ( ) . BeTrue ( ) ;
40+ config . Logging . File . Should ( ) . BeFalse ( ) ;
3841 }
3942
4043 [ Fact ]
@@ -879,5 +882,68 @@ public void LoadConfig_ShouldHandleInvalidExternalLinkTypeFromEnvironment_WhenIn
879882 // Cleanup
880883 Environment . SetEnvironmentVariable ( "QASE_TESTOPS_RUN_EXTERNAL_LINK" , null ) ;
881884 }
885+
886+ [ Fact ]
887+ public void LoadConfig_ShouldLoadLoggingConfigFromFile ( )
888+ {
889+ // Arrange
890+ var jsonConfig = @"{
891+ ""logging"": {
892+ ""console"": false,
893+ ""file"": true
894+ }
895+ }" ;
896+ File . WriteAllText ( ConfigFileName , jsonConfig ) ;
897+
898+ // Act
899+ var config = ConfigFactory . LoadConfig ( ) ;
900+
901+ // Assert
902+ config . Logging . Console . Should ( ) . BeFalse ( ) ;
903+ config . Logging . File . Should ( ) . BeTrue ( ) ;
904+ }
905+
906+ [ Fact ]
907+ public void LoadConfig_ShouldLoadLoggingConfigFromEnvironmentVariables ( )
908+ {
909+ // Arrange
910+ Environment . SetEnvironmentVariable ( "QASE_LOGGING_CONSOLE" , "false" ) ;
911+ Environment . SetEnvironmentVariable ( "QASE_LOGGING_FILE" , "true" ) ;
912+
913+ // Act
914+ var config = ConfigFactory . LoadConfig ( ) ;
915+
916+ // Assert
917+ config . Logging . Console . Should ( ) . BeFalse ( ) ;
918+ config . Logging . File . Should ( ) . BeTrue ( ) ;
919+
920+ // Cleanup
921+ Environment . SetEnvironmentVariable ( "QASE_LOGGING_CONSOLE" , null ) ;
922+ Environment . SetEnvironmentVariable ( "QASE_LOGGING_FILE" , null ) ;
923+ }
924+
925+ [ Fact ]
926+ public void LoadConfig_ShouldMergeLoggingConfigFromFileAndEnvironment ( )
927+ {
928+ // Arrange
929+ var jsonConfig = @"{
930+ ""logging"": {
931+ ""console"": false,
932+ ""file"": true
933+ }
934+ }" ;
935+ File . WriteAllText ( ConfigFileName , jsonConfig ) ;
936+ Environment . SetEnvironmentVariable ( "QASE_LOGGING_FILE" , "false" ) ;
937+
938+ // Act
939+ var config = ConfigFactory . LoadConfig ( ) ;
940+
941+ // Assert
942+ config . Logging . Console . Should ( ) . BeFalse ( ) ; // from file
943+ config . Logging . File . Should ( ) . BeFalse ( ) ; // from environment (overrides file)
944+
945+ // Cleanup
946+ Environment . SetEnvironmentVariable ( "QASE_LOGGING_FILE" , null ) ;
947+ }
882948 }
883949}
0 commit comments