]> Piment Noir Git Repositories - e-mobility-charging-stations-simulator.git/commitdiff
fix(tests): prevent Windows CI hang by moving timer reset to test that enables it
authorJérôme Benoit <jerome.benoit@sap.com>
Sun, 1 Mar 2026 00:30:36 +0000 (01:30 +0100)
committerJérôme Benoit <jerome.benoit@sap.com>
Sun, 1 Mar 2026 00:30:36 +0000 (01:30 +0100)
- Remove mock.timers.reset() from standardCleanup()
- Add explicit mock.timers.reset() to Reset test afterEach
- Fix Reset test: wrap orphaned code into proper it() block

tests/charging-station/ocpp/2.0/OCPP20IncomingRequestService-Reset.test.ts
tests/helpers/TestLifecycleHelpers.ts

index 8596daf5a9de32c75af1e36910111fb35aa5b550..3a6a0b8bfc37b6f24d166c7b0c187bf0b1c1b65f 100644 (file)
@@ -71,6 +71,7 @@ await describe('B11 & B12 - Reset', async () => {
   })
 
   afterEach(() => {
+    mock.timers.reset()
     standardCleanup()
   })
 
@@ -223,36 +224,38 @@ await describe('B11 & B12 - Reset', async () => {
       expect(response.status).toBe(ResetStatusEnumType.Accepted)
     })
 
-    // Mock charging station without EVSE support
-    Object.defineProperty(b11MockChargingStation, 'hasEvses', {
-      configurable: true,
-      value: false,
-      writable: true,
-    })
+    await it('should reject EVSE-specific reset when EVSEs not supported (non-EVSE mode)', async () => {
+      // Mock charging station without EVSE support
+      Object.defineProperty(b11MockChargingStation, 'hasEvses', {
+        configurable: true,
+        value: false,
+        writable: true,
+      })
 
-    const resetRequest: OCPP20ResetRequest = {
-      evseId: 1,
-      type: ResetEnumType.Immediate,
-    }
+      const resetRequest: OCPP20ResetRequest = {
+        evseId: 1,
+        type: ResetEnumType.Immediate,
+      }
+
+      const response: OCPP20ResetResponse = await testableService.handleRequestReset(
+        b11MockChargingStation,
+        resetRequest
+      )
+
+      expect(response).toBeDefined()
+      expect(response.status).toBe(ResetStatusEnumType.Rejected)
+      expect(response.statusInfo).toBeDefined()
+      expect(response.statusInfo?.reasonCode).toBe(ReasonCodeEnumType.UnsupportedRequest)
+      expect(response.statusInfo?.additionalInfo).toContain(
+        'does not support resetting individual EVSE'
+      )
 
-    const response: OCPP20ResetResponse = await testableService.handleRequestReset(
-      b11MockChargingStation,
-      resetRequest
-    )
-
-    expect(response).toBeDefined()
-    expect(response.status).toBe(ResetStatusEnumType.Rejected)
-    expect(response.statusInfo).toBeDefined()
-    expect(response.statusInfo?.reasonCode).toBe(ReasonCodeEnumType.UnsupportedRequest)
-    expect(response.statusInfo?.additionalInfo).toContain(
-      'does not support resetting individual EVSE'
-    )
-
-    // Restore original state
-    Object.defineProperty(b11MockChargingStation, 'hasEvses', {
-      configurable: false,
-      value: true,
-      writable: false,
+      // Restore original state
+      Object.defineProperty(b11MockChargingStation, 'hasEvses', {
+        configurable: true,
+        value: true,
+        writable: true,
+      })
     })
 
     await it('should handle EVSE-specific reset without transactions', async () => {
index 9c1c2e3d6ac9deada9ca2d39d72cc76b61ea5b7c..5b30141b8f962198db0009148580a8efa38f8e6a 100644 (file)
@@ -291,11 +291,6 @@ export function setupConnectorWithTransaction (
  */
 export function standardCleanup (): void {
   mock.restoreAll()
-  try {
-    mock.timers.reset()
-  } catch {
-    // Timers may not have been enabled, ignore
-  }
   MockSharedLRUCache.resetInstance()
   MockIdTagsCache.resetInstance()
 }