[Reporting] Fix screenshot pipeline for multi-page (#56928) (#56990)

Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>

Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
This commit is contained in:
Tim Sullivan 2020-02-06 10:08:19 -07:00 committed by GitHub
parent 5394529a95
commit a2dae47a98
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -5,7 +5,7 @@
*/
import * as Rx from 'rxjs';
import { first, mergeMap, toArray } from 'rxjs/operators';
import { first, concatMap, take, toArray, mergeMap } from 'rxjs/operators';
import { ServerFacade, CaptureConfig, HeadlessChromiumDriverFactory } from '../../../../types';
import { ScreenshotResults, ScreenshotObservableOpts } from './types';
import { injectCustomCss } from './inject_css';
@ -37,12 +37,11 @@ export function screenshotsObservableFactory(
{ viewport: layout.getBrowserViewport(), browserTimezone },
logger
);
return Rx.from(urls).pipe(
mergeMap(url => {
concatMap(url => {
return create$.pipe(
mergeMap(({ driver, exit$ }) => {
const screenshot$ = Rx.of(driver).pipe(
const screenshot$ = Rx.of(1).pipe(
mergeMap(() => openUrl(driver, url, conditionalHeaders, logger)),
mergeMap(() => skipTelemetry(driver, logger)),
mergeMap(() => scanPage(driver, layout, logger)),
@ -85,10 +84,11 @@ export function screenshotsObservableFactory(
);
return Rx.race(screenshot$, exit$);
})
}),
first()
);
}),
first(),
take(urls.length),
toArray()
);
};