All files / Api/ResumePoints/Subscribers subscribeToResumePointsTrigger.js

36.36% Statements 4/11
100% Branches 0/0
33.33% Functions 1/3
33.33% Lines 3/9

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39          1x 1x   5x                                                            
/**
 * @param {Observable<[player.currentTime, Config, Playback, player.Playback]>} resumePointsTrigger$
 * @param {Observable}
 */
 
const INT_RADIX = 10;
const calculatePosition = (time, minTime) => parseInt(time - minTime, INT_RADIX);
 
const subscribeToResumePointsTrigger = (
    resumePointsTrigger$,
    resumePointsApiRequest$
) =>
    resumePointsTrigger$
        .subscribe(([
            currentTime,
            latestConfig,
            latestPlayback,
            latestPlayerPlayback,
        ]) => {
            const { minTime, maxTime } = latestPlayerPlayback;
            const { authToken } = latestConfig.environment;
            const { asset, media } = latestPlayback;
 
            const requestData = {
                assetId: asset.id,
                articleTypeId: asset.type.id,
                contentLength: calculatePosition(maxTime, minTime),
                position: calculatePosition(currentTime, minTime),
                videoType: media.videoType,
                eventId: asset.eventId,
                authToken,
            };
 
            resumePointsApiRequest$.next(requestData);
        });
 
export default subscribeToResumePointsTrigger;