Skip to content

Commit ed19353

Browse files
committed
test: Increase timeout durations in load balancer tests for improved stability
1 parent ec3edc6 commit ed19353

1 file changed

Lines changed: 21 additions & 16 deletions

File tree

test/load-balancer/load-balancer.test.ts

Lines changed: 21 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -449,7 +449,7 @@ describe('HttpLoadBalancer', () => {
449449
loadBalancer = createLoadBalancer(config)
450450

451451
// Wait for health check to run
452-
await new Promise((resolve) => setTimeout(resolve, 150))
452+
await new Promise((resolve) => setTimeout(resolve, 600))
453453

454454
expect(fetchCallCount).toBeGreaterThan(0)
455455

@@ -478,7 +478,7 @@ describe('HttpLoadBalancer', () => {
478478
loadBalancer = createLoadBalancer(config)
479479

480480
// Wait for health check to run
481-
await new Promise((resolve) => setTimeout(resolve, 150))
481+
await new Promise((resolve) => setTimeout(resolve, 600))
482482

483483
const targets = loadBalancer.getHealthyTargets()
484484
expect(targets.length).toBe(1)
@@ -506,7 +506,7 @@ describe('HttpLoadBalancer', () => {
506506
loadBalancer = createLoadBalancer(config)
507507

508508
// Wait for health check to run and fail
509-
await new Promise((resolve) => setTimeout(resolve, 200))
509+
await new Promise((resolve) => setTimeout(resolve, 600))
510510

511511
const stats = loadBalancer.getStats()
512512
// Health check should have marked target as unhealthy
@@ -548,7 +548,7 @@ describe('HttpLoadBalancer', () => {
548548
loadBalancer = createLoadBalancer(config)
549549

550550
// Wait for health check to timeout
551-
await new Promise((resolve) => setTimeout(resolve, 200))
551+
await new Promise((resolve) => setTimeout(resolve, 600))
552552

553553
const stats = loadBalancer.getStats()
554554
expect(stats.healthyTargets).toBe(0) // Should be marked unhealthy due to timeout
@@ -558,9 +558,14 @@ describe('HttpLoadBalancer', () => {
558558

559559
test('skips health checks when disabled', async () => {
560560
let fetchCalled = false
561+
const uniquePath = '/health-disabled-unique'
561562

562-
const fetchSpy = createFetchSpy(async () => {
563-
fetchCalled = true
563+
const fetchSpy = createFetchSpy(async (url: string | URL | Request) => {
564+
let href = ''
565+
if (typeof url === 'string') href = url
566+
else if (url instanceof URL) href = url.toString()
567+
else if (url instanceof Request) href = url.url
568+
if (href.includes(uniquePath)) fetchCalled = true
564569
return new Response('OK', { status: 200 })
565570
})
566571

@@ -571,14 +576,14 @@ describe('HttpLoadBalancer', () => {
571576
enabled: false,
572577
interval: 100,
573578
timeout: 1000,
574-
path: '/health',
579+
path: uniquePath,
575580
},
576581
}
577582

578583
loadBalancer = createLoadBalancer(config)
579584

580585
// Wait to ensure no health checks run
581-
await new Promise((resolve) => setTimeout(resolve, 150))
586+
await new Promise((resolve) => setTimeout(resolve, 500))
582587

583588
expect(fetchCalled).toBe(false)
584589

@@ -651,7 +656,7 @@ describe('HttpLoadBalancer', () => {
651656
loadBalancer.selectTarget(request) // Creates session
652657

653658
// Wait for session to expire and cleanup to run
654-
await new Promise((resolve) => setTimeout(resolve, 100))
659+
await new Promise((resolve) => setTimeout(resolve, 500))
655660

656661
// Sessions should be cleaned up (we can't directly test internal state but ensure no errors)
657662
expect(true).toBe(true)
@@ -966,7 +971,7 @@ describe('HttpLoadBalancer', () => {
966971
loadBalancer.selectTarget(request) // Creates session
967972

968973
// Wait for potential session cleanup
969-
await new Promise((resolve) => setTimeout(resolve, 100))
974+
await new Promise((resolve) => setTimeout(resolve, 500))
970975

971976
// Should handle session cleanup without errors
972977
expect(true).toBe(true)
@@ -1261,7 +1266,7 @@ describe('HttpLoadBalancer', () => {
12611266
expect(target).not.toBeNull()
12621267

12631268
// Wait for session to expire and cleanup to run
1264-
await new Promise((resolve) => setTimeout(resolve, 60))
1269+
await new Promise((resolve) => setTimeout(resolve, 300))
12651270

12661271
// Force another selection to trigger potential cleanup
12671272
const newTarget = balancer.selectTarget(request)
@@ -1297,7 +1302,7 @@ describe('HttpLoadBalancer', () => {
12971302
expect(target3).not.toBeNull()
12981303

12991304
// Wait longer to ensure sessions expire and cleanup runs
1300-
await new Promise((resolve) => setTimeout(resolve, 120))
1305+
await new Promise((resolve) => setTimeout(resolve, 500))
13011306

13021307
// Trigger more operations that might involve session cleanup
13031308
const newRequest = createMockRequest('new-agent')
@@ -1371,7 +1376,7 @@ describe('HttpLoadBalancer', () => {
13711376
expect(target).not.toBeNull()
13721377

13731378
// Wait for cleanup to potentially run
1374-
await new Promise((resolve) => setTimeout(resolve, 70))
1379+
await new Promise((resolve) => setTimeout(resolve, 300))
13751380

13761381
balancer.destroy()
13771382
})
@@ -1394,7 +1399,7 @@ describe('HttpLoadBalancer', () => {
13941399
const balancer = new HttpLoadBalancer(config)
13951400

13961401
// Let some health checks run and potentially use cache
1397-
await new Promise((resolve) => setTimeout(resolve, 70))
1402+
await new Promise((resolve) => setTimeout(resolve, 300))
13981403

13991404
balancer.destroy()
14001405
})
@@ -1626,7 +1631,7 @@ describe('HttpLoadBalancer', () => {
16261631
})
16271632

16281633
// Trigger cleanup by waiting for interval
1629-
await new Promise((resolve) => setTimeout(resolve, 20))
1634+
await new Promise((resolve) => setTimeout(resolve, 200))
16301635

16311636
balancer.destroy()
16321637
})
@@ -1678,7 +1683,7 @@ describe('HttpLoadBalancer', () => {
16781683
// Wait a bit longer to allow the cleanup interval to run at least once
16791684
// The cleanup runs every 5 minutes (300000ms) in the real implementation
16801685
// but the expired sessions should be cleaned immediately on the next interval
1681-
await new Promise((resolve) => setTimeout(resolve, 30))
1686+
await new Promise((resolve) => setTimeout(resolve, 200))
16821687

16831688
// Force another operation that might trigger cleanup
16841689
const request2 = createMockRequest('different-agent')

0 commit comments

Comments
 (0)