@@ -60,6 +60,7 @@ describe('The Media Track Object', () => {
6060 await track . removeSilences ( ) ;
6161 expect ( track . clips . length ) . toBe ( 1 ) ;
6262 expect ( track . clips . at ( 0 ) ) . toBe ( clip ) ;
63+ expect ( track . clips . at ( 0 ) ?. state ) . toBe ( 'ATTACHED' ) ;
6364 } ) ;
6465
6566 it ( 'removes silences' , async ( ) => {
@@ -81,10 +82,41 @@ describe('The Media Track Object', () => {
8182 expect ( clip . source ) . toBeDefined ( ) ;
8283 await track . removeSilences ( ) ;
8384 expect ( track . clips . length ) . toBe ( 2 ) ;
84- expect ( track . clips . at ( 0 ) ?. range [ 0 ] . millis ) . toBe ( 10051 ) ;
85+ expect ( track . clips . at ( 0 ) ?. range [ 0 ] . millis ) . toBe ( 10050 ) ;
8586 expect ( track . clips . at ( 0 ) ?. range [ 1 ] . millis ) . toBe ( 11000 ) ;
86- expect ( track . clips . at ( 1 ) ?. range [ 0 ] . millis ) . toBe ( 15001 ) ;
87+ expect ( track . clips . at ( 1 ) ?. range [ 0 ] . millis ) . toBe ( 15000 ) ;
8788 expect ( track . clips . at ( 1 ) ?. range [ 1 ] . millis ) . toBe ( 19000 ) ;
89+ expect ( track . clips . at ( 0 ) ?. state ) . toBe ( 'ATTACHED' ) ;
90+ expect ( track . clips . at ( 1 ) ?. state ) . toBe ( 'ATTACHED' ) ;
91+ } ) ;
92+
93+ it ( 'removes silences twice' , async ( ) => {
94+ const clip = new MockMediaClip ( [ new Timestamp ( 10000 ) , new Timestamp ( 20000 ) ] , [
95+ {
96+ start : new Timestamp ( 0 ) ,
97+ stop : new Timestamp ( 500 ) ,
98+ } ,
99+ {
100+ start : new Timestamp ( 11000 ) ,
101+ stop : new Timestamp ( 15000 ) ,
102+ } ,
103+ {
104+ start : new Timestamp ( 19000 ) ,
105+ stop : new Timestamp ( 30500 ) ,
106+ } ,
107+ ] , new Audio ( ) ) ;
108+ await track . add ( clip ) ;
109+ expect ( clip . source ) . toBeDefined ( ) ;
110+ await track . removeSilences ( ) ;
111+ await track . removeSilences ( ) ;
112+ expect ( track . clips . length ) . toBe ( 2 ) ;
113+ expect ( track . clips . at ( 0 ) ?. id ) . not . toBe ( clip . id ) ;
114+ expect ( track . clips . at ( 0 ) ?. range [ 0 ] . millis ) . toBe ( 10000 ) ;
115+ expect ( track . clips . at ( 0 ) ?. range [ 1 ] . millis ) . toBe ( 11000 ) ;
116+ expect ( track . clips . at ( 1 ) ?. range [ 0 ] . millis ) . toBe ( 15000 ) ;
117+ expect ( track . clips . at ( 1 ) ?. range [ 1 ] . millis ) . toBe ( 19000 ) ;
118+ expect ( track . clips . at ( 0 ) ?. state ) . toBe ( 'ATTACHED' ) ;
119+ expect ( track . clips . at ( 1 ) ?. state ) . toBe ( 'ATTACHED' ) ;
88120 } ) ;
89121
90122 it ( 'should propagate a seek call' , async ( ) => {
0 commit comments