+/**
+ * @file Tests for ChargingStationFactory
+ * @description Unit tests for charging station factory utilities and OCPP service mocking
+ */
import { expect } from '@std/expect'
import { describe, it } from 'node:test'
+/**
+ * @file Tests for ChargingStation
+ * @description Unit tests for charging station lifecycle, state management, and connector operations
+ */
import { expect } from '@std/expect'
import { afterEach, describe, it } from 'node:test'
+/**
+ * @file Tests for ConfigurationKeyUtils
+ * @description Unit tests for OCPP configuration key management utilities
+ */
import { expect } from '@std/expect'
import { describe, it } from 'node:test'
+/**
+ * @file Tests for Helpers
+ * @description Unit tests for charging station helper functions and utilities
+ */
/* eslint-disable @typescript-eslint/no-unsafe-member-access */
import { expect } from '@std/expect'
+/**
+ * @file Tests for OCPP20CertificateManager
+ * @description Unit tests for OCPP 2.0 certificate management and validation
+ */
/* eslint-disable @typescript-eslint/no-explicit-any */
import { expect } from '@std/expect'
+/**
+ * @file Tests for OCPP20IncomingRequestService CertificateSigned
+ * @description Unit tests for OCPP 2.0 CertificateSigned command handling
+ */
/* eslint-disable @typescript-eslint/no-unsafe-member-access */
/* eslint-disable @typescript-eslint/no-unsafe-assignment */
/* eslint-disable @typescript-eslint/no-unsafe-call */
+/**
+ * @file Tests for OCPP20IncomingRequestService ClearCache
+ * @description Unit tests for OCPP 2.0 ClearCache command handling (C11)
+ */
/* eslint-disable @typescript-eslint/no-unsafe-member-access */
/* eslint-disable @typescript-eslint/no-unsafe-assignment */
/* eslint-disable @typescript-eslint/no-unsafe-call */
+/**
+ * @file Tests for OCPP20IncomingRequestService DeleteCertificate
+ * @description Unit tests for OCPP 2.0 DeleteCertificate command handling
+ */
/* eslint-disable @typescript-eslint/no-unsafe-member-access */
/* eslint-disable @typescript-eslint/no-unsafe-assignment */
/* eslint-disable @typescript-eslint/no-unsafe-call */
+/**
+ * @file Tests for OCPP20IncomingRequestService GetBaseReport
+ * @description Unit tests for OCPP 2.0 GetBaseReport command handling (B07)
+ */
/* eslint-disable @typescript-eslint/no-unsafe-member-access */
/* eslint-disable @typescript-eslint/no-unsafe-assignment */
/* eslint-disable @typescript-eslint/no-unsafe-call */
+/**
+ * @file Tests for OCPP20IncomingRequestService GetInstalledCertificateIds
+ * @description Unit tests for OCPP 2.0 GetInstalledCertificateIds command handling
+ */
/* eslint-disable @typescript-eslint/no-unsafe-member-access */
/* eslint-disable @typescript-eslint/no-unsafe-assignment */
/* eslint-disable @typescript-eslint/no-unsafe-call */
+/**
+ * @file Tests for OCPP20IncomingRequestService GetVariables
+ * @description Unit tests for OCPP 2.0 GetVariables command handling (B06)
+ */
import { expect } from '@std/expect'
import { millisecondsToSeconds } from 'date-fns'
import { describe, it } from 'node:test'
+/**
+ * @file Tests for OCPP20IncomingRequestService InstallCertificate
+ * @description Unit tests for OCPP 2.0 InstallCertificate command handling
+ */
/* eslint-disable @typescript-eslint/no-unsafe-member-access */
/* eslint-disable @typescript-eslint/no-unsafe-assignment */
/* eslint-disable @typescript-eslint/no-unsafe-call */
+/**
+ * @file Tests for OCPP20IncomingRequestService RemoteStartAuth
+ * @description Unit tests for OCPP 2.0 remote start pre-authorization (G03.FR.03)
+ */
/* eslint-disable @typescript-eslint/no-unsafe-assignment */
/* eslint-disable @typescript-eslint/no-explicit-any */
+/**
+ * @file Tests for OCPP20IncomingRequestService RequestStartTransaction
+ * @description Unit tests for OCPP 2.0 RequestStartTransaction command handling (F01/F02)
+ */
/* eslint-disable @typescript-eslint/no-unsafe-member-access */
/* eslint-disable @typescript-eslint/no-unsafe-assignment */
/* eslint-disable @typescript-eslint/no-unsafe-call */
+/**
+ * @file Tests for OCPP20IncomingRequestService RequestStopTransaction
+ * @description Unit tests for OCPP 2.0 RequestStopTransaction command handling (F03)
+ */
/* eslint-disable @typescript-eslint/no-unsafe-member-access */
/* eslint-disable @typescript-eslint/no-unsafe-assignment */
/* eslint-disable @typescript-eslint/no-unsafe-call */
+/**
+ * @file Tests for OCPP20IncomingRequestService Reset
+ * @description Unit tests for OCPP 2.0 Reset command handling (B11/B12)
+ */
/* eslint-disable @typescript-eslint/no-unsafe-member-access */
/* eslint-disable @typescript-eslint/no-unsafe-assignment */
/* eslint-disable @typescript-eslint/no-unsafe-call */
+/**
+ * @file Tests for OCPP20IncomingRequestService SetVariables
+ * @description Unit tests for OCPP 2.0 SetVariables command handling
+ */
/* eslint-disable @typescript-eslint/no-explicit-any */
import { expect } from '@std/expect'
+/**
+ * @file Tests for OCPP20RequestService BootNotification
+ * @description Unit tests for OCPP 2.0 BootNotification request building (B01)
+ */
/* eslint-disable @typescript-eslint/no-unsafe-member-access */
/* eslint-disable @typescript-eslint/no-unsafe-assignment */
/* eslint-disable @typescript-eslint/no-unsafe-call */
+/**
+ * @file Tests for OCPP20RequestService HeartBeat
+ * @description Unit tests for OCPP 2.0 Heartbeat request building (G02)
+ */
/* eslint-disable @typescript-eslint/no-unsafe-member-access */
/* eslint-disable @typescript-eslint/no-unsafe-assignment */
/* eslint-disable @typescript-eslint/no-unsafe-call */
+/**
+ * @file Tests for OCPP20RequestService ISO15118
+ * @description Unit tests for OCPP 2.0 ISO 15118 certificate and EV communication
+ */
/* eslint-disable @typescript-eslint/no-unsafe-member-access */
/* eslint-disable @typescript-eslint/no-unsafe-assignment */
/* eslint-disable @typescript-eslint/no-unsafe-call */
+/**
+ * @file Tests for OCPP20RequestService NotifyReport
+ * @description Unit tests for OCPP 2.0 NotifyReport request building (B07/B08)
+ */
/* eslint-disable @typescript-eslint/no-unsafe-member-access */
/* eslint-disable @typescript-eslint/no-unsafe-assignment */
/* eslint-disable @typescript-eslint/no-unsafe-call */
+/**
+ * @file Tests for OCPP20RequestService SignCertificate
+ * @description Unit tests for OCPP 2.0 SignCertificate request building
+ */
/* eslint-disable @typescript-eslint/no-unsafe-member-access */
/* eslint-disable @typescript-eslint/no-unsafe-assignment */
/* eslint-disable @typescript-eslint/no-unsafe-call */
+/**
+ * @file Tests for OCPP20RequestService StatusNotification
+ * @description Unit tests for OCPP 2.0 StatusNotification request building (G01)
+ */
/* eslint-disable @typescript-eslint/no-unsafe-member-access */
/* eslint-disable @typescript-eslint/no-unsafe-assignment */
/* eslint-disable @typescript-eslint/no-unsafe-call */
+/**
+ * @file Tests for OCPP20ServiceUtils TransactionEvent CableFirst
+ * @description Unit tests for OCPP 2.0 cable-first transaction flow (E02)
+ */
import { expect } from '@std/expect'
import { afterEach, describe, it } from 'node:test'
+/**
+ * @file Tests for OCPP20ServiceUtils TransactionEvent IdTokenFirst
+ * @description Unit tests for OCPP 2.0 IdToken-first pre-authorization flow (E03)
+ */
import { expect } from '@std/expect'
import { afterEach, describe, it } from 'node:test'
+/**
+ * @file Tests for OCPP20ServiceUtils TransactionEvent Offline
+ * @description Unit tests for OCPP 2.0 offline TransactionEvent queueing (E02)
+ */
/* eslint-disable @typescript-eslint/no-unsafe-member-access */
/* eslint-disable @typescript-eslint/no-unsafe-assignment */
/* eslint-disable @typescript-eslint/no-unsafe-argument */
+/**
+ * @file Tests for OCPP20ServiceUtils TransactionEvent Periodic
+ * @description Unit tests for OCPP 2.0 periodic TransactionEvent at TxUpdatedInterval (E02)
+ */
/* eslint-disable @typescript-eslint/no-unsafe-member-access */
/* eslint-disable @typescript-eslint/no-unsafe-assignment */
/* eslint-disable @typescript-eslint/no-unsafe-argument */
+/**
+ * @file Tests for OCPP20ServiceUtils TransactionEvent
+ * @description Unit tests for OCPP 2.0 TransactionEvent building and trigger reasons (E01-E04)
+ */
/* eslint-disable @typescript-eslint/no-unsafe-member-access */
/* eslint-disable @typescript-eslint/no-unsafe-assignment */
+/**
+ * @file Tests for OCPP20VariableManager
+ * @description Unit tests for OCPP 2.0 variable management and device model
+ */
/* eslint-disable @typescript-eslint/no-unsafe-member-access */
/* eslint-disable @typescript-eslint/no-unsafe-assignment */
/* eslint-disable @typescript-eslint/no-unsafe-call */
+/**
+ * @file Tests for OCPPAuthIntegration
+ * @description Integration tests for OCPP authentication across versions 1.6 and 2.0
+ */
import { expect } from '@std/expect'
import { describe, it } from 'node:test'
+/**
+ * @file Tests for OCPP16AuthAdapter
+ * @description Unit tests for OCPP 1.6 authentication adapter
+ */
import { expect } from '@std/expect'
import { afterEach, beforeEach, describe, it } from 'node:test'
+/**
+ * @file Tests for OCPP20AuthAdapter Offline
+ * @description Unit tests for OCPP 2.0 offline authorization scenarios (G03.FR.02)
+ */
/**
* G03.FR.02 - OCPP 2.0 Offline Authorization Tests
*
+/**
+ * @file Tests for OCPP20AuthAdapter
+ * @description Unit tests for OCPP 2.0 authentication adapter
+ */
import { expect } from '@std/expect'
import { afterEach, beforeEach, describe, it } from 'node:test'
+/**
+ * @file Tests for InMemoryAuthCache
+ * @description Unit tests for in-memory authorization cache conformance (G03.FR.01)
+ */
import { expect } from '@std/expect'
import { afterEach, beforeEach, describe, it } from 'node:test'
+/**
+ * @file Tests for AuthComponentFactory
+ * @description Unit tests for authentication component factory
+ */
/* eslint-disable @typescript-eslint/no-confusing-void-expression */
import { expect } from '@std/expect'
import { afterEach, describe, it } from 'node:test'
+/**
+ * @file Tests for OCPPAuthServiceFactory
+ * @description Unit tests for OCPP authentication service factory
+ */
import { expect } from '@std/expect'
import { describe, it } from 'node:test'
+/**
+ * @file Tests for OCPPAuthServiceImpl
+ * @description Unit tests for OCPP authentication service implementation
+ */
import { expect } from '@std/expect'
import { afterEach, describe, it } from 'node:test'
+/**
+ * @file Tests for CertificateAuthStrategy
+ * @description Unit tests for certificate-based authentication strategy
+ */
import { expect } from '@std/expect'
import { afterEach, beforeEach, describe, it } from 'node:test'
+/**
+ * @file Tests for LocalAuthStrategy
+ * @description Unit tests for local authorization strategy (cache and local list)
+ */
import { expect } from '@std/expect'
import { afterEach, beforeEach, describe, it } from 'node:test'
+/**
+ * @file Tests for RemoteAuthStrategy
+ * @description Unit tests for remote (CSMS) authorization strategy
+ */
import { expect } from '@std/expect'
import { afterEach, beforeEach, describe, it } from 'node:test'
+/**
+ * @file Tests for AuthTypes
+ * @description Unit tests for authentication type definitions and mappings
+ */
import { expect } from '@std/expect'
import { describe, it } from 'node:test'
+/**
+ * @file Tests for AuthHelpers
+ * @description Unit tests for authentication helper utilities
+ */
import { expect } from '@std/expect'
import { describe, it } from 'node:test'
+/**
+ * @file Tests for AuthValidators
+ * @description Unit tests for authentication validation utilities
+ */
import { expect } from '@std/expect'
import { describe, it } from 'node:test'
+/**
+ * @file Tests for AuthConfigValidator
+ * @description Unit tests for authentication configuration validation
+ */
// Copyright Jerome Benoit. 2021-2025. All Rights Reserved.
import { expect } from '@std/expect'
+/**
+ * @file Tests for UIHttpServer
+ * @description Unit tests for HTTP-based UI server and response handling
+ */
// Copyright Jerome Benoit. 2024-2025. All Rights Reserved.
import { expect } from '@std/expect'
+/**
+ * @file Tests for UIServerSecurity
+ * @description Unit tests for UI server security utilities (rate limiting, validation)
+ */
// Copyright Jerome Benoit. 2024-2025. All Rights Reserved.
import { expect } from '@std/expect'
+/**
+ * @file Tests for UIWebSocketServer
+ * @description Unit tests for WebSocket-based UI server and response handling
+ */
// Copyright Jerome Benoit. 2024-2025. All Rights Reserved.
import { expect } from '@std/expect'
+/**
+ * @file Tests for AbstractUIService
+ * @description Unit tests for abstract UI service base class functionality
+ */
// Copyright Jerome Benoit. 2024-2025. All Rights Reserved.
import { expect } from '@std/expect'
+/**
+ * @file Tests for BaseError
+ * @description Unit tests for base error class functionality
+ */
import { expect } from '@std/expect'
import { describe, it } from 'node:test'
+/**
+ * @file Tests for OCPPError
+ * @description Unit tests for OCPP-specific error class
+ */
import { expect } from '@std/expect'
import { describe, it } from 'node:test'
+/**
+ * @file Tests for ConfigurationData
+ * @description Unit tests for configuration data types and enumerations
+ */
import { expect } from '@std/expect'
import { describe, it } from 'node:test'
+/**
+ * @file Tests for AsyncLock
+ * @description Unit tests for asynchronous lock utilities
+ */
import { expect } from '@std/expect'
import { randomInt } from 'node:crypto'
import { describe, it } from 'node:test'
+/**
+ * @file Tests for ConfigurationUtils
+ * @description Unit tests for configuration utility functions
+ */
import { expect } from '@std/expect'
import { describe, it } from 'node:test'
+/**
+ * @file Tests for ElectricUtils
+ * @description Unit tests for electrical calculations (AC/DC power, amperage)
+ */
import { expect } from '@std/expect'
import { describe, it } from 'node:test'
+/**
+ * @file Tests for ErrorUtils
+ * @description Unit tests for error handling utilities
+ */
import { expect } from '@std/expect'
import { describe, it } from 'node:test'
+/**
+ * @file Tests for StatisticUtils
+ * @description Unit tests for statistical calculation utilities
+ */
import { expect } from '@std/expect'
import { describe, it } from 'node:test'
+/**
+ * @file Tests for Utils
+ * @description Unit tests for general utility functions
+ */
import { expect } from '@std/expect'
import { hoursToMilliseconds, hoursToSeconds } from 'date-fns'
import { CircularBuffer } from 'mnemonist'
+/**
+ * @file Tests for WorkerUtils
+ * @description Unit tests for worker process utility functions
+ */
import { expect } from '@std/expect'
import { describe, it } from 'node:test'