X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=tests%2Futils%2FErrorUtils.test.ts;h=edf088cf8cf8785605c570c5728616063601ef5d;hb=c11be92a38d40495df5ec37b9ff946993c4dc84f;hp=486a031635af4a0e00ae15957b9135a00265deb4;hpb=b49550e256d11c7a30fb19cd672e5e3611d01553;p=e-mobility-charging-stations-simulator.git diff --git a/tests/utils/ErrorUtils.test.ts b/tests/utils/ErrorUtils.test.ts index 486a0316..edf088cf 100644 --- a/tests/utils/ErrorUtils.test.ts +++ b/tests/utils/ErrorUtils.test.ts @@ -1,22 +1,110 @@ +/* eslint-disable @typescript-eslint/no-unsafe-member-access */ import { describe, it } from 'node:test' import { expect } from 'expect' -import { FileType } from '../../src/types/index.js' -import { handleFileException, setDefaultErrorParams } from '../../src/utils/ErrorUtils.js' +import type { ChargingStation } from '../../src/charging-station/index.js' +import { + FileType, + GenericStatus, + IncomingRequestCommand, + MessageType, + RequestCommand +} from '../../src/types/index.js' +import { + handleFileException, + handleIncomingRequestError, + handleSendMessageError, + setDefaultErrorParams +} from '../../src/utils/ErrorUtils.js' +import { logger } from '../../src/utils/Logger.js' await describe('ErrorUtils test suite', async () => { - await it('Verify handleFileException()', () => { + // eslint-disable-next-line @typescript-eslint/consistent-type-assertions + const chargingStation = { + logPrefix: () => 'CS-TEST |' + } as ChargingStation + + await it('Verify handleFileException()', t => { + t.mock.method(console, 'warn') + t.mock.method(console, 'error') + t.mock.method(logger, 'warn') + t.mock.method(logger, 'error') const error = new Error() error.code = 'ENOENT' expect(() => { - handleFileException('path/to/module.js', FileType.Authorization, error, 'log prefix', {}) + handleFileException('path/to/module.js', FileType.Authorization, error, 'log prefix |', {}) + }).toThrow(error) + expect(() => { + handleFileException('path/to/module.js', FileType.Authorization, error, 'log prefix |', { + throwError: false + }) + }).not.toThrow() + expect(logger.warn.mock.calls.length).toBe(1) + expect(logger.error.mock.calls.length).toBe(1) + expect(() => { + handleFileException('path/to/module.js', FileType.Authorization, error, 'log prefix |', { + consoleOut: true + }) + }).toThrow(error) + expect(() => { + handleFileException('path/to/module.js', FileType.Authorization, error, 'log prefix |', { + throwError: false, + consoleOut: true + }) + }).not.toThrow() + expect(console.warn.mock.calls.length).toBe(1) + expect(console.error.mock.calls.length).toBe(1) + }) + + await it('Verify handleSendMessageError()', t => { + t.mock.method(logger, 'error') + t.mock.method(chargingStation, 'logPrefix') + const error = new Error() + expect(() => { + handleSendMessageError( + chargingStation, + RequestCommand.BOOT_NOTIFICATION, + MessageType.CALL_MESSAGE, + error + ) + }).not.toThrow() + expect(() => { + handleSendMessageError( + chargingStation, + RequestCommand.BOOT_NOTIFICATION, + MessageType.CALL_MESSAGE, + error, + { throwError: true } + ) }).toThrow(error) + expect(chargingStation.logPrefix.mock.calls.length).toBe(2) + expect(logger.error.mock.calls.length).toBe(2) + }) + + await it('Verify handleIncomingRequestError()', t => { + t.mock.method(logger, 'error') + t.mock.method(chargingStation, 'logPrefix') + const error = new Error() expect(() => { - handleFileException('path/to/module.js', FileType.Authorization, error, 'log prefix', { + handleIncomingRequestError(chargingStation, IncomingRequestCommand.CLEAR_CACHE, error) + }).toThrow(error) + expect(() => { + handleIncomingRequestError(chargingStation, IncomingRequestCommand.CLEAR_CACHE, error, { throwError: false }) }).not.toThrow() + const errorResponse = { + status: GenericStatus.Rejected + } + expect( + handleIncomingRequestError(chargingStation, IncomingRequestCommand.CLEAR_CACHE, error, { + throwError: false, + errorResponse + }) + ).toStrictEqual(errorResponse) + expect(chargingStation.logPrefix.mock.calls.length).toBe(3) + expect(logger.error.mock.calls.length).toBe(3) }) await it('Verify setDefaultErrorParams()', () => {