@@ -2772,6 +2772,56 @@ target = "translated.xcstrings"
27722772 assert ! ( captured. contains( "\" Core\" " ) ) ;
27732773 }
27742774
2775+ #[ test]
2776+ fn tolgee_translate_ignores_unmapped_catalogs_without_namespace_filter ( ) {
2777+ let temp_dir = TempDir :: new ( ) . unwrap ( ) ;
2778+ let project_root = temp_dir. path ( ) ;
2779+ let source = project_root. join ( "ModuleExport.xcstrings" ) ;
2780+
2781+ fs:: write (
2782+ & source,
2783+ r#"{
2784+ "sourceLanguage" : "en",
2785+ "version" : "1.0",
2786+ "strings" : {
2787+ "welcome" : {
2788+ "localizations" : {
2789+ "en" : {
2790+ "stringUnit" : {
2791+ "state" : "translated",
2792+ "value" : "Welcome"
2793+ }
2794+ },
2795+ "fr" : {
2796+ "stringUnit" : {
2797+ "state" : "translated",
2798+ "value" : "Bienvenue"
2799+ }
2800+ }
2801+ }
2802+ }
2803+ }
2804+ }"# ,
2805+ )
2806+ . unwrap ( ) ;
2807+
2808+ let tolgee_config = write_translate_tolgee_config ( project_root) ;
2809+ let mut options = base_options ( & source, None ) ;
2810+ options. target_langs = vec ! [ "fr" . to_string( ) ] ;
2811+ options. provider = None ;
2812+ options. model = None ;
2813+ options. use_tolgee = true ;
2814+ options. tolgee_config = Some ( tolgee_config. to_string_lossy ( ) . to_string ( ) ) ;
2815+
2816+ let prepared = prepare_translation ( & options) . unwrap ( ) ;
2817+ assert ! ( prepared. tolgee_context. is_none( ) ) ;
2818+ assert ! ( prepared. jobs. is_empty( ) ) ;
2819+
2820+ let outcome = run_prepared_translation ( prepared, None ) . unwrap ( ) ;
2821+ assert_eq ! ( outcome. translated, 0 ) ;
2822+ assert_eq ! ( outcome. failed, 0 ) ;
2823+ }
2824+
27752825 #[ test]
27762826 fn falls_back_to_xcstrings_key_when_source_locale_entry_is_missing ( ) {
27772827 let temp_dir = TempDir :: new ( ) . unwrap ( ) ;
0 commit comments