@@ -81,3 +81,31 @@ promise_test(async t => {
81
81
return translator . translate ( 'hello' , { signal} ) ;
82
82
} ) ;
83
83
} , 'Aborting AITranslator.translate().' ) ;
84
+
85
+ promise_test ( async t => {
86
+ let monitorCalled = false ;
87
+ const progressEvents = [ ] ;
88
+ function monitor ( m ) {
89
+ monitorCalled = true ;
90
+
91
+ m . addEventListener ( 'downloadprogress' , e => {
92
+ progressEvents . push ( e ) ;
93
+ } ) ;
94
+ }
95
+
96
+ await ai . translator . create (
97
+ { sourceLanguage : 'en' , targetLanguage : 'ja' , monitor} ) ;
98
+
99
+ // Monitor callback must be called.
100
+ assert_true ( monitorCalled ) ;
101
+
102
+ // Must have at least 2 progress events, one for 0 and one for 1.
103
+ assert_greater_than_equal ( progressEvents . length , 2 ) ;
104
+ assert_equals ( progressEvents . at ( 0 ) . loaded , 0 ) ;
105
+ assert_equals ( progressEvents . at ( 1 ) . loaded , 1 ) ;
106
+
107
+ // All progress events must have a total of 1.
108
+ for ( const progressEvent of progressEvents ) {
109
+ assert_equals ( progressEvent . total , 1 ) ;
110
+ }
111
+ } , 'AITranslatorFactory.create() monitor option is called correctly.' ) ;
0 commit comments