aboutsummaryrefslogtreecommitdiffhomepage
path: root/client/src/app/shared/video-playlist/video-playlist.service.ts
diff options
context:
space:
mode:
authorChocobozzz <me@florianbigard.com>2020-01-23 14:23:19 +0100
committerChocobozzz <me@florianbigard.com>2020-01-23 14:59:44 +0100
commit44d4ee4fcb7cf8beebac73f85693c09919b91e66 (patch)
tree24b9867f2e0a5480cda3653ba00702779913fc88 /client/src/app/shared/video-playlist/video-playlist.service.ts
parent89566f77fd938cf8b0a617d5d2df4ca718242372 (diff)
downloadPeerTube-44d4ee4fcb7cf8beebac73f85693c09919b91e66.tar.gz
PeerTube-44d4ee4fcb7cf8beebac73f85693c09919b91e66.tar.zst
PeerTube-44d4ee4fcb7cf8beebac73f85693c09919b91e66.zip
Fix e2e tests
Diffstat (limited to 'client/src/app/shared/video-playlist/video-playlist.service.ts')
-rw-r--r--client/src/app/shared/video-playlist/video-playlist.service.ts14
1 files changed, 9 insertions, 5 deletions
diff --git a/client/src/app/shared/video-playlist/video-playlist.service.ts b/client/src/app/shared/video-playlist/video-playlist.service.ts
index fc5eb5337..bae6f9e04 100644
--- a/client/src/app/shared/video-playlist/video-playlist.service.ts
+++ b/client/src/app/shared/video-playlist/video-playlist.service.ts
@@ -1,6 +1,6 @@
1import { bufferTime, catchError, filter, map, share, switchMap, tap } from 'rxjs/operators' 1import { bufferTime, catchError, filter, map, observeOn, share, switchMap, tap } from 'rxjs/operators'
2import { Injectable } from '@angular/core' 2import { Injectable, NgZone } from '@angular/core'
3import { merge, Observable, of, ReplaySubject, Subject } from 'rxjs' 3import { asyncScheduler, merge, Observable, of, ReplaySubject, Subject } from 'rxjs'
4import { RestExtractor } from '../rest/rest-extractor.service' 4import { RestExtractor } from '../rest/rest-extractor.service'
5import { HttpClient, HttpParams } from '@angular/common/http' 5import { HttpClient, HttpParams } from '@angular/common/http'
6import { ResultList, VideoPlaylistElementCreate, VideoPlaylistElementUpdate } from '../../../../../shared' 6import { ResultList, VideoPlaylistElementCreate, VideoPlaylistElementUpdate } from '../../../../../shared'
@@ -23,6 +23,7 @@ import { VideoPlaylistElement as ServerVideoPlaylistElement } from '@shared/mode
23import { VideoPlaylistElement } from '@app/shared/video-playlist/video-playlist-element.model' 23import { VideoPlaylistElement } from '@app/shared/video-playlist/video-playlist-element.model'
24import { uniq } from 'lodash-es' 24import { uniq } from 'lodash-es'
25import * as debug from 'debug' 25import * as debug from 'debug'
26import { enterZone, leaveZone } from '@app/shared/rxjs/zone'
26 27
27const logger = debug('peertube:playlists:VideoPlaylistService') 28const logger = debug('peertube:playlists:VideoPlaylistService')
28 29
@@ -49,13 +50,16 @@ export class VideoPlaylistService {
49 private authHttp: HttpClient, 50 private authHttp: HttpClient,
50 private serverService: ServerService, 51 private serverService: ServerService,
51 private restExtractor: RestExtractor, 52 private restExtractor: RestExtractor,
52 private restService: RestService 53 private restService: RestService,
54 private ngZone: NgZone
53 ) { 55 ) {
54 this.videoExistsInPlaylistObservable = merge( 56 this.videoExistsInPlaylistObservable = merge(
55 this.videoExistsInPlaylistNotifier.pipe( 57 this.videoExistsInPlaylistNotifier.pipe(
56 bufferTime(500), 58 // We leave Angular zone so Protractor does not get stuck
59 bufferTime(500, leaveZone(this.ngZone, asyncScheduler)),
57 filter(videoIds => videoIds.length !== 0), 60 filter(videoIds => videoIds.length !== 0),
58 map(videoIds => uniq(videoIds)), 61 map(videoIds => uniq(videoIds)),
62 observeOn(enterZone(this.ngZone, asyncScheduler)),
59 switchMap(videoIds => this.doVideosExistInPlaylist(videoIds)), 63 switchMap(videoIds => this.doVideosExistInPlaylist(videoIds)),
60 share() 64 share()
61 ), 65 ),