import { standardCleanup } from '../../../helpers/TestLifecycleHelpers.js'
import {
EMPTY_PEM_CERTIFICATE,
+ INVALID_PEM_CERTIFICATE_MISSING_MARKERS,
INVALID_PEM_WRONG_MARKERS,
VALID_PEM_CERTIFICATE_EXTENDED,
} from './OCPP20CertificateTestData.js'
+
const TEST_STATION_HASH_ID = 'test-station-hash-12345'
const TEST_CERT_TYPE = InstallCertificateUseEnumType.CSMSRootCertificate
-// Use VALID_PEM_CERTIFICATE_EXTENDED as the main valid certificate for these tests
-const VALID_PEM_CERTIFICATE = VALID_PEM_CERTIFICATE_EXTENDED
-
-// Alias for consistency with existing test expectations
-const INVALID_PEM_NO_MARKERS = `
-MIIDXTCCAkWgAwIBAgIJAJC1HiIAZAiUMA0GCSqGSIb3Qq8teleNzMHjvLuHvVsY
-a5uYmO6K8pzuYmOvfLNNMC5leGFtcGxlLmNvbTAeFw0xNzAxMTIyMTI3NDBaFw0y
-`
// eslint-disable-next-line @typescript-eslint/no-unused-vars -- kept for future assertions
const _EXPECTED_HASH_DATA: CertificateHashDataType = {
hashAlgorithm: HashAlgorithmEnumType.SHA256,
const result = await manager.storeCertificate(
TEST_STATION_HASH_ID,
TEST_CERT_TYPE,
- VALID_PEM_CERTIFICATE
+ VALID_PEM_CERTIFICATE_EXTENDED
)
expect(result).toBeDefined()
const result = await manager.storeCertificate(
TEST_STATION_HASH_ID,
TEST_CERT_TYPE,
- INVALID_PEM_NO_MARKERS
+ INVALID_PEM_CERTIFICATE_MISSING_MARKERS
)
expect(result).toBeDefined()
const result = await manager.storeCertificate(
TEST_STATION_HASH_ID,
InstallCertificateUseEnumType.V2GRootCertificate,
- VALID_PEM_CERTIFICATE
+ VALID_PEM_CERTIFICATE_EXTENDED
)
expect(result).toBeDefined()
manager = new OCPP20CertificateManager()
})
await it('should compute hash data for valid PEM certificate', () => {
- const hashData = manager.computeCertificateHash(VALID_PEM_CERTIFICATE)
+ const hashData = manager.computeCertificateHash(VALID_PEM_CERTIFICATE_EXTENDED)
expect(hashData).toBeDefined()
expect(hashData.hashAlgorithm).toBe(HashAlgorithmEnumType.SHA256)
})
await it('should return hex-encoded hash values', () => {
- const hashData = manager.computeCertificateHash(VALID_PEM_CERTIFICATE)
+ const hashData = manager.computeCertificateHash(VALID_PEM_CERTIFICATE_EXTENDED)
const hexPattern = /^[a-fA-F0-9]+$/
expect(hashData.issuerNameHash).toMatch(hexPattern)
await it('should throw error for invalid PEM certificate', () => {
expect(() => {
- manager.computeCertificateHash(INVALID_PEM_NO_MARKERS)
+ manager.computeCertificateHash(INVALID_PEM_CERTIFICATE_MISSING_MARKERS)
}).toThrow()
})
await it('should support SHA384 hash algorithm', () => {
const hashData = manager.computeCertificateHash(
- VALID_PEM_CERTIFICATE,
+ VALID_PEM_CERTIFICATE_EXTENDED,
HashAlgorithmEnumType.SHA384
)
await it('should support SHA512 hash algorithm', () => {
const hashData = manager.computeCertificateHash(
- VALID_PEM_CERTIFICATE,
+ VALID_PEM_CERTIFICATE_EXTENDED,
HashAlgorithmEnumType.SHA512
)
manager = new OCPP20CertificateManager()
})
await it('should return true for valid PEM certificate', () => {
- const isValid = manager.validateCertificateFormat(VALID_PEM_CERTIFICATE)
+ const isValid = manager.validateCertificateFormat(VALID_PEM_CERTIFICATE_EXTENDED)
expect(isValid).toBe(true)
})
await it('should return false for certificate without BEGIN marker', () => {
- const isValid = manager.validateCertificateFormat(INVALID_PEM_NO_MARKERS)
+ const isValid = manager.validateCertificateFormat(INVALID_PEM_CERTIFICATE_MISSING_MARKERS)
expect(isValid).toBe(false)
})
manager.storeCertificate(
TEST_STATION_HASH_ID,
InstallCertificateUseEnumType.CSMSRootCertificate,
- VALID_PEM_CERTIFICATE
+ VALID_PEM_CERTIFICATE_EXTENDED
),
manager.storeCertificate(
TEST_STATION_HASH_ID,
InstallCertificateUseEnumType.V2GRootCertificate,
- VALID_PEM_CERTIFICATE
+ VALID_PEM_CERTIFICATE_EXTENDED
),
manager.getInstalledCertificates(TEST_STATION_HASH_ID),
])
})
await it('should handle very long certificate chains', async () => {
- const longChain = Array(5).fill(VALID_PEM_CERTIFICATE).join('\n')
+ const longChain = Array(5).fill(VALID_PEM_CERTIFICATE_EXTENDED).join('\n')
const result = await manager.storeCertificate(TEST_STATION_HASH_ID, TEST_CERT_TYPE, longChain)