mirror of
https://github.com/elastic/kibana.git
synced 2025-04-23 17:28:26 -04:00
parent
2b4eeee680
commit
79b19894b5
2 changed files with 20 additions and 1 deletions
|
@ -106,6 +106,25 @@ describe('MetricsService', () => {
|
|||
`"#setup() needs to be run first"`
|
||||
);
|
||||
});
|
||||
|
||||
it('emits the last value on each getOpsMetrics$ call', async () => {
|
||||
const firstMetrics = { metric: 'first' };
|
||||
const secondMetrics = { metric: 'second' };
|
||||
mockOpsCollector.collect
|
||||
.mockResolvedValueOnce(firstMetrics)
|
||||
.mockResolvedValueOnce(secondMetrics);
|
||||
|
||||
await metricsService.setup({ http: httpMock });
|
||||
const { getOpsMetrics$ } = await metricsService.start();
|
||||
|
||||
const firstEmission = getOpsMetrics$().pipe(take(1)).toPromise();
|
||||
jest.advanceTimersByTime(testInterval);
|
||||
expect(await firstEmission).toEqual({ metric: 'first' });
|
||||
|
||||
const secondEmission = getOpsMetrics$().pipe(take(1)).toPromise();
|
||||
jest.advanceTimersByTime(testInterval);
|
||||
expect(await secondEmission).toEqual({ metric: 'second' });
|
||||
});
|
||||
});
|
||||
|
||||
describe('#stop', () => {
|
||||
|
|
|
@ -37,7 +37,7 @@ export class MetricsService
|
|||
private readonly logger: Logger;
|
||||
private metricsCollector?: OpsMetricsCollector;
|
||||
private collectInterval?: NodeJS.Timeout;
|
||||
private metrics$ = new ReplaySubject<OpsMetrics>();
|
||||
private metrics$ = new ReplaySubject<OpsMetrics>(1);
|
||||
private service?: InternalMetricsServiceSetup;
|
||||
|
||||
constructor(private readonly coreContext: CoreContext) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue