From 707040656c31cd3dcd5cb75cd960b638d328f2d9 Mon Sep 17 00:00:00 2001 From: pgayvallet Date: Wed, 6 May 2020 09:23:39 +0200 Subject: [PATCH 1/2] fix flaky test --- .../metrics/integration_tests/server_collector.test.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/core/server/metrics/integration_tests/server_collector.test.ts b/src/core/server/metrics/integration_tests/server_collector.test.ts index dd5c256cf1600..397a1c8d76750 100644 --- a/src/core/server/metrics/integration_tests/server_collector.test.ts +++ b/src/core/server/metrics/integration_tests/server_collector.test.ts @@ -185,18 +185,18 @@ describe('ServerMetricsCollector', () => { let metrics = await collector.collect(); expect(metrics.concurrent_connections).toEqual(0); - sendGet('/').end(() => null); + const res1 = sendGet('/').then(res => res); await waitForHits(1); metrics = await collector.collect(); expect(metrics.concurrent_connections).toEqual(1); - sendGet('/').end(() => null); + const res2 = sendGet('/').then(res => res); await waitForHits(2); metrics = await collector.collect(); expect(metrics.concurrent_connections).toEqual(2); waitSubject.next('go'); - await delay(requestWaitDelay); + await Promise.all([res1, res2]); metrics = await collector.collect(); expect(metrics.concurrent_connections).toEqual(0); }); From 22269a58f6449877755179381ac09736ee2cfc2e Mon Sep 17 00:00:00 2001 From: pgayvallet Date: Wed, 6 May 2020 10:21:04 +0200 Subject: [PATCH 2/2] add comment on supertest behavior --- .../server/metrics/integration_tests/server_collector.test.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/core/server/metrics/integration_tests/server_collector.test.ts b/src/core/server/metrics/integration_tests/server_collector.test.ts index 397a1c8d76750..3b982a06cf06c 100644 --- a/src/core/server/metrics/integration_tests/server_collector.test.ts +++ b/src/core/server/metrics/integration_tests/server_collector.test.ts @@ -185,6 +185,10 @@ describe('ServerMetricsCollector', () => { let metrics = await collector.collect(); expect(metrics.concurrent_connections).toEqual(0); + // supertest requests are executed when calling `.then` (or awaiting them). + // however in this test we need to send the request now and await for it later in the code. + // also using `.end` is not possible as it would execute the request twice. + // so the only option is this noop `.then`. const res1 = sendGet('/').then(res => res); await waitForHits(1); metrics = await collector.collect();