Skip to content

Commit aff1fa3

Browse files
authored
CSHARP-5213: Test serverMonitoringMode=poll waits after a successful heartbeat (#1439)
1 parent 5da9780 commit aff1fa3

File tree

2 files changed

+103
-0
lines changed

2 files changed

+103
-0
lines changed

specifications/server-discovery-and-monitoring/tests/unified/serverMonitoringMode.json

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -444,6 +444,69 @@
444444
]
445445
}
446446
]
447+
},
448+
{
449+
"description": "poll waits after successful heartbeat",
450+
"operations": [
451+
{
452+
"name": "createEntities",
453+
"object": "testRunner",
454+
"arguments": {
455+
"entities": [
456+
{
457+
"client": {
458+
"id": "client",
459+
"uriOptions": {
460+
"serverMonitoringMode": "poll",
461+
"heartbeatFrequencyMS": 1000000
462+
},
463+
"useMultipleMongoses": false,
464+
"observeEvents": [
465+
"serverHeartbeatStartedEvent",
466+
"serverHeartbeatSucceededEvent"
467+
]
468+
}
469+
},
470+
{
471+
"database": {
472+
"id": "db",
473+
"client": "client",
474+
"databaseName": "sdam-tests"
475+
}
476+
}
477+
]
478+
}
479+
},
480+
{
481+
"name": "waitForEvent",
482+
"object": "testRunner",
483+
"arguments": {
484+
"client": "client",
485+
"event": {
486+
"serverHeartbeatSucceededEvent": {}
487+
},
488+
"count": 1
489+
}
490+
},
491+
{
492+
"name": "wait",
493+
"object": "testRunner",
494+
"arguments": {
495+
"ms": 500
496+
}
497+
},
498+
{
499+
"name": "assertEventCount",
500+
"object": "testRunner",
501+
"arguments": {
502+
"client": "client",
503+
"event": {
504+
"serverHeartbeatStartedEvent": {}
505+
},
506+
"count": 1
507+
}
508+
}
509+
]
447510
}
448511
]
449512
}

specifications/server-discovery-and-monitoring/tests/unified/serverMonitoringMode.yml

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -171,3 +171,43 @@ tests:
171171
# Wait for the second serverHeartbeatStartedEvent to ensure we do not stream.
172172
- *waitForSecondHeartbeatStarted
173173
expectEvents: *pollingStartedEvents
174+
175+
- description: "poll waits after successful heartbeat"
176+
operations:
177+
- name: createEntities
178+
object: testRunner
179+
arguments:
180+
entities:
181+
- client:
182+
id: client
183+
uriOptions:
184+
serverMonitoringMode: "poll"
185+
heartbeatFrequencyMS: 1000000
186+
useMultipleMongoses: false
187+
observeEvents:
188+
- serverHeartbeatStartedEvent
189+
- serverHeartbeatSucceededEvent
190+
- database:
191+
id: db
192+
client: client
193+
databaseName: sdam-tests
194+
# Wait for the first serverHeartbeatSucceededEvent to ensure we start polling.
195+
- name: waitForEvent
196+
object: testRunner
197+
arguments:
198+
client: client
199+
event:
200+
serverHeartbeatSucceededEvent: {}
201+
count: 1
202+
# Wait for a bit longer to ensure we wait heartbeatFrequencyMS before starting the next check.
203+
- name: wait
204+
object: testRunner
205+
arguments:
206+
ms: 500
207+
- name: assertEventCount
208+
object: testRunner
209+
arguments:
210+
client: client
211+
event:
212+
serverHeartbeatStartedEvent: {}
213+
count: 1

0 commit comments

Comments
 (0)