@@ -7,51 +7,45 @@ use vox::stt;
77#[ test]
88fn build_transcribe_command_basic ( ) {
99 let cmd = stt:: build_transcribe_command ( "/tmp/audio.wav" , None ) ;
10- let args: Vec < & OsStr > = cmd. get_args ( ) . collect ( ) ;
1110 assert_eq ! ( cmd. get_program( ) , "python3" ) ;
12- assert ! ( args. contains( & OsStr :: new( "-m" ) ) ) ;
13- assert ! ( args. contains( & OsStr :: new( "mlx_audio.stt.generate" ) ) ) ;
14- assert ! ( args. contains( & OsStr :: new( "--audio" ) ) ) ;
15- assert ! ( args. contains( & OsStr :: new( "/tmp/audio.wav" ) ) ) ;
16- assert ! ( args. contains( & OsStr :: new( "--format" ) ) ) ;
17- assert ! ( args. contains( & OsStr :: new( "txt" ) ) ) ;
11+ let args: Vec < & OsStr > = cmd. get_args ( ) . collect ( ) ;
12+ assert_eq ! ( args. len( ) , 2 ) ;
13+ assert_eq ! ( args[ 0 ] , "-c" ) ;
14+ let script = args[ 1 ] . to_string_lossy ( ) ;
15+ assert ! ( script. contains( "mlx_whisper" ) ) ;
16+ assert ! ( script. contains( "/tmp/audio.wav" ) ) ;
17+ assert ! ( script. contains( "language='en'" ) ) ; // default language
1818}
1919
2020#[ test]
2121fn build_transcribe_command_with_language ( ) {
2222 let cmd = stt:: build_transcribe_command ( "/tmp/audio.wav" , Some ( "fr" ) ) ;
2323 let args: Vec < & OsStr > = cmd. get_args ( ) . collect ( ) ;
24- assert ! ( args. contains ( & OsStr :: new ( "--language" ) ) ) ;
25- assert ! ( args . contains( & OsStr :: new ( "fr" ) ) ) ;
24+ let script = args[ 1 ] . to_string_lossy ( ) ;
25+ assert ! ( script . contains( "language='fr'" ) ) ;
2626}
2727
2828#[ test]
29- fn build_transcribe_command_no_language_flag_when_none ( ) {
29+ fn build_transcribe_command_no_language_defaults_to_en ( ) {
3030 let cmd = stt:: build_transcribe_command ( "/tmp/audio.wav" , None ) ;
3131 let args: Vec < & OsStr > = cmd. get_args ( ) . collect ( ) ;
32- assert ! ( !args. contains( & OsStr :: new( "--language" ) ) ) ;
32+ let script = args[ 1 ] . to_string_lossy ( ) ;
33+ assert ! ( script. contains( "language='en'" ) ) ;
3334}
3435
3536#[ test]
3637fn build_transcribe_command_preserves_audio_path ( ) {
3738 let cmd = stt:: build_transcribe_command ( "/home/user/recording.wav" , None ) ;
3839 let args: Vec < & OsStr > = cmd. get_args ( ) . collect ( ) ;
39- assert ! ( args. contains( & OsStr :: new( "/home/user/recording.wav" ) ) ) ;
40+ let script = args[ 1 ] . to_string_lossy ( ) ;
41+ assert ! ( script. contains( "/home/user/recording.wav" ) ) ;
4042}
4143
4244#[ test]
43- fn build_transcribe_command_arg_order ( ) {
44- let cmd = stt:: build_transcribe_command ( "/tmp/a.wav" , Some ( "en " ) ) ;
45+ fn build_transcribe_command_uses_whisper_model ( ) {
46+ let cmd = stt:: build_transcribe_command ( "/tmp/a.wav" , Some ( "ja " ) ) ;
4547 let args: Vec < & OsStr > = cmd. get_args ( ) . collect ( ) ;
46- // -m must come before mlx_audio.stt.generate
47- let m_pos = args. iter ( ) . position ( |a| * a == "-m" ) . unwrap ( ) ;
48- let mod_pos = args
49- . iter ( )
50- . position ( |a| * a == "mlx_audio.stt.generate" )
51- . unwrap ( ) ;
52- assert ! ( m_pos < mod_pos) ;
53- // --audio must come before --language
54- let audio_pos = args. iter ( ) . position ( |a| * a == "--audio" ) . unwrap ( ) ;
55- let lang_pos = args. iter ( ) . position ( |a| * a == "--language" ) . unwrap ( ) ;
56- assert ! ( audio_pos < lang_pos) ;
48+ let script = args[ 1 ] . to_string_lossy ( ) ;
49+ assert ! ( script. contains( "whisper-large-v3-turbo" ) ) ;
50+ assert ! ( script. contains( "language='ja'" ) ) ;
5751}
0 commit comments