]> Piment Noir Git Repositories - e-mobility-charging-stations-simulator.git/commitdiff
fix: ensure proper cleanup of BroadcastChannel resources in AbstractUIService tests
authorJérôme Benoit <jerome.benoit@sap.com>
Sat, 10 Jan 2026 15:26:39 +0000 (16:26 +0100)
committerJérôme Benoit <jerome.benoit@sap.com>
Sat, 10 Jan 2026 15:26:39 +0000 (16:26 +0100)
Add service.stop() calls to all AbstractUIService tests to properly close
BroadcastChannel instances. On Windows, unclosed BroadcastChannel handles
can cause test freezes due to unfreed system resources. This ensures proper
cleanup after each test completes.

tests/charging-station/ui-server/ui-services/AbstractUIService.test.ts

index 0b1456be4a7c424261fa6eb098177e27a91bec5b..8fe5973681a81f5f7ef67be4501940398dd39968 100644 (file)
@@ -33,6 +33,7 @@ await describe('AbstractUIService test suite', async () => {
     expect(service).toBeDefined()
     if (service != null) {
       service.sendResponse(TEST_UUID, { status: ResponseStatus.SUCCESS })
+      service.stop()
     }
 
     expect(server.hasResponseHandler(TEST_UUID)).toBe(false)
@@ -61,6 +62,7 @@ await describe('AbstractUIService test suite', async () => {
         expect(response[1].chargingStations).toBeDefined()
         expect(Array.isArray(response[1].chargingStations)).toBe(true)
       }
+      service.stop()
     }
   })
 
@@ -89,6 +91,7 @@ await describe('AbstractUIService test suite', async () => {
         expect(response[1].templates).toContain('template1.json')
         expect(response[1].templates).toContain('template2.json')
       }
+      service.stop()
     }
   })
 
@@ -112,6 +115,7 @@ await describe('AbstractUIService test suite', async () => {
         expect(response[1].status).toBe(ResponseStatus.FAILURE)
         expect(response[1].errorMessage).toBeDefined()
       }
+      service.stop()
     }
   })
 
@@ -126,6 +130,7 @@ await describe('AbstractUIService test suite', async () => {
     expect(service).toBeDefined()
     if (service != null) {
       expect(service.getBroadcastChannelExpectedResponses(TEST_UUID)).toBe(0)
+      service.stop()
     }
   })
 
@@ -163,6 +168,7 @@ await describe('AbstractUIService test suite', async () => {
         expect(response[0]).toBe(TEST_UUID)
         expect(response[1].status).toBe(ResponseStatus.FAILURE)
       }
+      service.stop()
     }
   })
 
@@ -175,6 +181,9 @@ await describe('AbstractUIService test suite', async () => {
     const service = server.getUIService(ProtocolVersion['0.0.1'])
 
     expect(service).toBeDefined()
+    if (service != null) {
+      service.stop()
+    }
   })
 
   await it('Verify multiple service registrations', () => {
@@ -187,5 +196,10 @@ await describe('AbstractUIService test suite', async () => {
     const uiServicesMap = Reflect.get(server, 'uiServices') as Map<unknown, unknown>
 
     expect(uiServicesMap.size).toBe(1)
+
+    const service = server.getUIService(ProtocolVersion['0.0.1'])
+    if (service != null) {
+      service.stop()
+    }
   })
 })