All files / Player/Streams createExcessiveBufferingStream.js

100% Statements 7/7
100% Branches 0/0
100% Functions 2/2
100% Lines 6/6

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 341x               1x   1x   1x             3x                 2x          
import {
    filter,
    pluck,
    distinctUntilChanged,
    debounceTime,
    mapTo,
} from 'rxjs/operators';
 
import ErrorTypes from '../../Errors/Constants/Error.type';
 
const BUFFERING_ROTATION_TRIGGER_IN_MS = 8000;
 
const excessiveBufferingError = {
    type: ErrorTypes.EXCESSIVE_BUFFERING,
    data: {
        duration: BUFFERING_ROTATION_TRIGGER_IN_MS,
    },
};
 
const createExcessiveBufferingStream = (
    playerPlaybackUpdate$,
    scheduler,
) =>
    playerPlaybackUpdate$
        .pipe(
            pluck('playbackStatus'),
            distinctUntilChanged(),
            debounceTime(BUFFERING_ROTATION_TRIGGER_IN_MS, scheduler),
            filter(playbackStatus => playbackStatus === 'BUFFERING'),
            mapTo(excessiveBufferingError)
        );
 
export default createExcessiveBufferingStream;