From ec16ef6c7c226193ab9090a7cd6f5edd60dd88d1 Mon Sep 17 00:00:00 2001 From: =?utf8?q?J=C3=A9r=C3=B4me=20Benoit?= Date: Thu, 30 Apr 2026 15:50:05 +0200 Subject: [PATCH] refactor(ui-web): replace string literals with OCPP16ChargePointStatus enum in tests Use enum constants instead of raw strings for connector status values in test assertions and mock data for type safety and refactoring ease. --- .../shared/composables/stationStatus.test.ts | 35 ++++++++++--------- .../unit/skins/modern/ConnectorRow.test.ts | 14 ++++---- 2 files changed, 26 insertions(+), 23 deletions(-) diff --git a/ui/web/tests/unit/shared/composables/stationStatus.test.ts b/ui/web/tests/unit/shared/composables/stationStatus.test.ts index f39aba88..b90b075e 100644 --- a/ui/web/tests/unit/shared/composables/stationStatus.test.ts +++ b/ui/web/tests/unit/shared/composables/stationStatus.test.ts @@ -4,6 +4,7 @@ */ import type { ChargingStationData } from 'ui-common' +import { OCPP16ChargePointStatus } from 'ui-common' import { describe, expect, it } from 'vitest' import { @@ -16,47 +17,47 @@ import { describe('stationStatus', () => { describe('getConnectorStatusVariant', () => { it('should return ok for Available', () => { - const result = getConnectorStatusVariant('Available') + const result = getConnectorStatusVariant(OCPP16ChargePointStatus.AVAILABLE) expect(result).toBe('ok') }) it('should return warn for Charging', () => { - const result = getConnectorStatusVariant('Charging') + const result = getConnectorStatusVariant(OCPP16ChargePointStatus.CHARGING) expect(result).toBe('warn') }) it('should return warn for Occupied', () => { - const result = getConnectorStatusVariant('Occupied') + const result = getConnectorStatusVariant(OCPP16ChargePointStatus.OCCUPIED) expect(result).toBe('warn') }) it('should return warn for Preparing', () => { - const result = getConnectorStatusVariant('Preparing') + const result = getConnectorStatusVariant(OCPP16ChargePointStatus.PREPARING) expect(result).toBe('warn') }) it('should return warn for SuspendedEV', () => { - const result = getConnectorStatusVariant('SuspendedEV') + const result = getConnectorStatusVariant(OCPP16ChargePointStatus.SUSPENDED_EV) expect(result).toBe('warn') }) it('should return warn for SuspendedEVSE', () => { - const result = getConnectorStatusVariant('SuspendedEVSE') + const result = getConnectorStatusVariant(OCPP16ChargePointStatus.SUSPENDED_EVSE) expect(result).toBe('warn') }) it('should return warn for Finishing', () => { - const result = getConnectorStatusVariant('Finishing') + const result = getConnectorStatusVariant(OCPP16ChargePointStatus.FINISHING) expect(result).toBe('warn') }) it('should return err for Faulted', () => { - const result = getConnectorStatusVariant('Faulted') + const result = getConnectorStatusVariant(OCPP16ChargePointStatus.FAULTED) expect(result).toBe('err') }) it('should return err for Unavailable', () => { - const result = getConnectorStatusVariant('Unavailable') + const result = getConnectorStatusVariant(OCPP16ChargePointStatus.UNAVAILABLE) expect(result).toBe('err') }) @@ -132,9 +133,9 @@ describe('stationStatus', () => { it('should return connector entries from connectors array', () => { const station = { connectors: [ - { connectorId: 0, connectorStatus: 'Available' }, - { connectorId: 1, connectorStatus: 'Charging' }, - { connectorId: 2, connectorStatus: 'Available' }, + { connectorId: 0, connectorStatus: OCPP16ChargePointStatus.AVAILABLE }, + { connectorId: 1, connectorStatus: OCPP16ChargePointStatus.CHARGING }, + { connectorId: 2, connectorStatus: OCPP16ChargePointStatus.AVAILABLE }, ], } as unknown as ChargingStationData const entries = getConnectorEntries(station) @@ -148,14 +149,16 @@ describe('stationStatus', () => { evses: [ { evseId: 0, - evseStatus: { connectors: [{ connectorId: 1, connectorStatus: 'Available' }] }, + evseStatus: { + connectors: [{ connectorId: 1, connectorStatus: OCPP16ChargePointStatus.AVAILABLE }], + }, }, { evseId: 1, evseStatus: { connectors: [ - { connectorId: 0, connectorStatus: 'Available' }, - { connectorId: 1, connectorStatus: 'Charging' }, + { connectorId: 0, connectorStatus: OCPP16ChargePointStatus.AVAILABLE }, + { connectorId: 1, connectorStatus: OCPP16ChargePointStatus.CHARGING }, ], }, }, @@ -169,7 +172,7 @@ describe('stationStatus', () => { it('should fall back to connectors when evses is empty', () => { const station = { - connectors: [{ connectorId: 1, connectorStatus: 'Available' }], + connectors: [{ connectorId: 1, connectorStatus: OCPP16ChargePointStatus.AVAILABLE }], evses: [], } as unknown as ChargingStationData const entries = getConnectorEntries(station) diff --git a/ui/web/tests/unit/skins/modern/ConnectorRow.test.ts b/ui/web/tests/unit/skins/modern/ConnectorRow.test.ts index 0df05e53..19015e19 100644 --- a/ui/web/tests/unit/skins/modern/ConnectorRow.test.ts +++ b/ui/web/tests/unit/skins/modern/ConnectorRow.test.ts @@ -80,13 +80,13 @@ describe('ConnectorRow', () => { describe('status pill variants', () => { it.each<[string, string]>([ - ['Available', 'modern-pill--ok'], - ['Charging', 'modern-pill--warn'], - ['Occupied', 'modern-pill--warn'], - ['Preparing', 'modern-pill--warn'], - ['Faulted', 'modern-pill--err'], - ['Unavailable', 'modern-pill--err'], - ['Reserved', 'modern-pill--idle'], + [OCPP16ChargePointStatus.AVAILABLE, 'modern-pill--ok'], + [OCPP16ChargePointStatus.CHARGING, 'modern-pill--warn'], + [OCPP16ChargePointStatus.OCCUPIED, 'modern-pill--warn'], + [OCPP16ChargePointStatus.PREPARING, 'modern-pill--warn'], + [OCPP16ChargePointStatus.FAULTED, 'modern-pill--err'], + [OCPP16ChargePointStatus.UNAVAILABLE, 'modern-pill--err'], + [OCPP16ChargePointStatus.RESERVED, 'modern-pill--idle'], ])('should map status "%s" to class %s', (status, cls) => { wrapper = mountRow({ connector: { status } }) const pills = wrapper.findAll('.modern-pill') -- 2.43.0