| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108 |
- /* eslint-disable @typescript-eslint/no-unsafe-member-access */
- import { expect } from '@std/expect'
- import { describe, it } from 'node:test'
- import type { ChargingStation } from '../../src/charging-station/index.js'
- import {
- FileType,
- GenericStatus,
- IncomingRequestCommand,
- MessageType,
- RequestCommand,
- } from '../../src/types/index.js'
- import {
- handleFileException,
- handleIncomingRequestError,
- handleSendMessageError,
- } from '../../src/utils/ErrorUtils.js'
- import { logger } from '../../src/utils/Logger.js'
- await describe('ErrorUtils test suite', async () => {
- 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 |', {})
- }).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 |', {
- consoleOut: true,
- throwError: false,
- })
- }).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(() => {
- 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, {
- errorResponse,
- throwError: false,
- })
- ).toStrictEqual(errorResponse)
- expect(chargingStation.logPrefix.mock.calls.length).toBe(3)
- expect(logger.error.mock.calls.length).toBe(3)
- })
- })
|