@@ -285,6 +285,7 @@ describe('The Media Clip', () => {
285285 expect ( copy . range [ 0 ] . frames ) . toBe ( 10 ) ;
286286 expect ( copy . range [ 1 ] ) . toBeInstanceOf ( Timestamp ) ;
287287 expect ( copy . range [ 1 ] . frames ) . toBe ( 80 ) ;
288+ expect ( copy . transcript ?. id ) . toBe ( clip . transcript . id ) ;
288289 } ) ;
289290
290291 it ( 'should generate a caption track using a transcript' , async ( ) => {
@@ -295,7 +296,7 @@ describe('The Media Clip', () => {
295296 const composition = new Composition ( ) ;
296297 await composition . add ( clip ) ;
297298
298- const track = await clip . generateCaptions ( ) ;
299+ const track = await clip . addCaptions ( ) ;
299300
300301 expect ( composition . tracks . length ) . toBe ( 2 ) ;
301302
@@ -420,6 +421,48 @@ describe('Split tests - the Media Clip object', () => {
420421 await expect ( ( ) => clip . split ( ) ) . rejects . toThrowError ( ) ;
421422 } ) ;
422423
424+ it ( 'should split the clip in place when the track is set to stacked' , async ( ) => {
425+ const clip1 = new MediaClip ( {
426+ offset : new Timestamp ( 1000 ) ,
427+ name : 'foo' ,
428+ } ) ;
429+
430+ const clip2 = new MediaClip ( {
431+ offset : new Timestamp ( 500 ) ,
432+ name : 'bar' ,
433+ } ) ;
434+
435+ clip1 . duration . millis = 3000 ;
436+ clip2 . duration . millis = 2000 ;
437+
438+ const track = new MediaTrack ( ) . stacked ( ) ;
439+
440+ await track . add ( clip1 ) ;
441+ await track . add ( clip2 ) ;
442+
443+ expect ( track . clips . length ) . toBe ( 2 ) ;
444+
445+ expect ( track . clips [ 0 ] . name ) . toBe ( 'foo' ) ;
446+ expect ( track . clips [ 0 ] . start . millis ) . toBe ( 0 ) ;
447+ expect ( track . clips [ 0 ] . stop . millis ) . toBe ( 3000 ) ;
448+
449+ expect ( track . clips [ 1 ] . name ) . toBe ( 'bar' ) ;
450+ expect ( track . clips [ 1 ] . start . millis ) . toBe ( 3001 ) ;
451+ expect ( track . clips [ 1 ] . stop . millis ) . toBe ( 5001 ) ;
452+
453+ await clip1 . split ( new Timestamp ( 2000 ) ) ;
454+
455+ expect ( track . clips . length ) . toBe ( 3 ) ;
456+ expect ( track . clips [ 0 ] . start . millis ) . toBe ( 0 ) ;
457+ expect ( track . clips [ 0 ] . stop . millis ) . toBe ( 2000 ) ;
458+
459+ expect ( track . clips [ 1 ] . start . millis ) . toBe ( 2001 ) ;
460+ expect ( track . clips [ 1 ] . stop . millis ) . toBe ( 3000 ) ;
461+
462+ expect ( track . clips [ 2 ] . start . millis ) . toBe ( 3001 ) ;
463+ expect ( track . clips [ 2 ] . stop . millis ) . toBe ( 5001 ) ;
464+ } ) ;
465+
423466 it ( 'should not split the clip when no track is provided' , async ( ) => {
424467 const clip = new MediaClip ( {
425468 offset : new Timestamp ( 1000 ) ,
0 commit comments