@@ -328,4 +328,93 @@ describe('Unit::Assets', () => {
328328 expect ( err . message ) . to . equal ( 'A playback ID is required' ) ;
329329 } ) ) ;
330330 } ) ;
331+
332+ /** @test {Assets.createTrack} */
333+ describe ( 'Assets.createTrack' , ( ) => {
334+ /** @test {Assets.createTrack} */
335+ it ( 'makes a POST request to create a text track for an asset' , done => {
336+ moxios . stubRequest (
337+ 'https://api.mux.com/video/v1/assets/testAsset/tracks' ,
338+ {
339+ status : 200 ,
340+ responseText : '{"data": {"create": true}}' ,
341+ }
342+ ) ;
343+
344+ const onFulfilled = sinon . spy ( ) ;
345+ testAssets
346+ . createTrack ( 'testAsset' , {
347+ url : 'https://example.com/myVIdeo_en.srt' ,
348+ type : 'text' ,
349+ text_type : 'subtitles' ,
350+ language_code : 'en-US' ,
351+ } )
352+ . then ( onFulfilled ) ;
353+
354+ return moxios . wait ( ( ) => {
355+ expect ( onFulfilled . getCall ( 0 ) . args [ 0 ] . create ) . to . be . true ;
356+ done ( ) ;
357+ } ) ;
358+ } ) ;
359+
360+ /** @test {Assets.createTrack} */
361+ it ( 'throws an error if an asset id is not given' , ( ) =>
362+ testAssets
363+ . createTrack ( )
364+ . then ( res => {
365+ expect ( res ) . to . not . exist ;
366+ } )
367+ . catch ( err => {
368+ expect ( err ) . to . exist ;
369+ expect ( err . message ) . to . equal ( 'An asset ID is required' ) ;
370+ } ) ) ;
371+
372+ /** @test {Assets.createTrack} */
373+ it ( 'throws an error if track params are not given' , ( ) =>
374+ testAssets
375+ . createTrack ( 'assetid' )
376+ . then ( res => {
377+ expect ( res ) . to . not . exist ;
378+ } )
379+ . catch ( err => {
380+ expect ( err ) . to . exist ;
381+ expect ( err . message ) . to . equal ( 'Text track params are required' ) ;
382+ } ) ) ;
383+ } ) ;
384+
385+ /** @test {Assets.deleteTrack} */
386+ describe ( 'Assets.deleteTrack' , ( ) => {
387+ /** @test {Assets.deleteTrack} */
388+ it ( 'makes a DELETE request to delete a text track for an asset' , done => {
389+ moxios . stubRequest (
390+ 'https://api.mux.com/video/v1/assets/testAsset/tracks/testTrackId' ,
391+ {
392+ status : 200 ,
393+ responseText : '{"data": {"delete": true}}' ,
394+ }
395+ ) ;
396+
397+ const onFulfilled = sinon . spy ( ) ;
398+ testAssets . deleteTrack ( 'testAsset' , 'testTrackId' ) . then ( onFulfilled ) ;
399+
400+ return moxios . wait ( ( ) => {
401+ expect ( onFulfilled . getCall ( 0 ) . args [ 0 ] . delete ) . to . be . true ;
402+ done ( ) ;
403+ } ) ;
404+ } ) ;
405+
406+ /** @test {Assets.deleteTrack} */
407+ it ( 'throws an error if an asset id is not given' , ( ) =>
408+ testAssets . deleteTrack ( ) . catch ( err => {
409+ expect ( err ) . to . exist ;
410+ expect ( err . message ) . to . equal ( 'An asset ID is required' ) ;
411+ } ) ) ;
412+
413+ /** @test {Assets.deleteTrack} */
414+ it ( 'throws an error if text track ID is not given' , ( ) =>
415+ testAssets . deleteTrack ( 'assetid' ) . catch ( err => {
416+ expect ( err ) . to . exist ;
417+ expect ( err . message ) . to . equal ( 'A track ID is required' ) ;
418+ } ) ) ;
419+ } ) ;
331420} ) ;
0 commit comments