@@ -2124,4 +2124,68 @@ mod tests {
21242124
21252125 Ok ( ( ) )
21262126 }
2127+
2128+ #[ test]
2129+ fn test_add_essential_files_with_toolchain ( ) {
2130+ wrapper ( |env : & TestEnvironment | {
2131+ let mut builder = RustwideBuilder :: init ( env) . unwrap ( ) ;
2132+
2133+ builder. update_toolchain ( ) ?;
2134+
2135+ // Should not fail on missing toolchain
2136+ match builder. add_essential_files ( ) {
2137+ Ok ( _) => println ! ( "add_essential_files succeeded with toolchain" ) ,
2138+ Err ( err) => {
2139+ let error_message = err. to_string ( ) ;
2140+ let is_toolchain_error = error_message. contains ( "toolchain" )
2141+ && ( error_message. contains ( "not found" )
2142+ || error_message. contains ( "not installed" )
2143+ || error_message. contains ( "missing" )
2144+ || error_message. contains ( "invalid toolchain" ) ) ;
2145+
2146+ assert ! (
2147+ !is_toolchain_error,
2148+ "Should not fail due to missing toolchain, but got: {error_message}"
2149+ ) ;
2150+ println ! ( "add_essential_files failed for expected reason: {error_message}" ) ;
2151+ }
2152+ }
2153+
2154+ Ok ( ( ) )
2155+ } )
2156+ }
2157+
2158+ #[ test]
2159+ fn test_add_essential_files_without_toolchain ( ) {
2160+ wrapper ( |env : & TestEnvironment | {
2161+ let mut builder = RustwideBuilder :: init ( env) . unwrap ( ) ;
2162+
2163+ // First: Set an invalid toolchain
2164+ env. runtime ( ) . block_on ( async {
2165+ let mut conn = env. async_db ( ) . await . async_conn ( ) . await ;
2166+ crate :: utils:: set_config (
2167+ & mut conn,
2168+ crate :: utils:: ConfigName :: Toolchain ,
2169+ "invalid-toolchain-name!@#" ,
2170+ )
2171+ . await
2172+ } ) ?;
2173+
2174+ // Should fail on missing toolchain
2175+ match builder. add_essential_files ( ) {
2176+ Ok ( _) => panic ! ( "add_essential_files should fail when toolchain is missing" ) ,
2177+ Err ( e) => {
2178+ let error_message = e. to_string ( ) ;
2179+ println ! ( "add_essential_files correctly failed with: {error_message}" ) ;
2180+
2181+ assert ! (
2182+ !error_message. contains( "success" ) ,
2183+ "Should not succeed when toolchain is missing"
2184+ ) ;
2185+ }
2186+ }
2187+
2188+ Ok ( ( ) )
2189+ } )
2190+ }
21272191}
0 commit comments