Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 15 additions & 2 deletions src/types/Helpers.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import { AppHeader } from '@shardeum-foundation/lib-net/build/src/types'
import { logFlags } from '../logger'
import * as Context from '../p2p/Context'
import { nestedCountersInstance } from '../utils/nestedCounters'
import { VectorBufferStream } from '../utils/serialization/VectorBufferStream'
import { WrappedReq, serializeWrappedReq } from './WrappedReq'
Expand Down Expand Up @@ -67,7 +68,13 @@ export const getStreamWithTypeCheck = (
const requestStream = VectorBufferStream.fromBuffer(payload)
const requestType = requestStream.readUInt16()
if (requestType !== typeId) {
/* prettier-ignore */ console.log(`Invalid request stream: expected: ${typeId} actual: ${requestType}. ${customErrorLog ? customErrorLog : ''}`)
/* prettier-ignore */
const logger = Context.logger?.getLogger('main')
if (logger) {
logger.error(
`Invalid request stream: expected: ${typeId} actual: ${requestType}. ${customErrorLog ? customErrorLog : ''}`
)
}
return null
}
return requestStream
Expand All @@ -91,7 +98,13 @@ export const requestErrorHandler = (
if (opts?.customErrorLog) {
logMessage += `, custom_log: ${opts.customErrorLog}`
}
/* prettier-ignore */ if (logFlags.error && logFlags.console) console.log(logMessage)
if (logFlags.error) {
/* prettier-ignore */
const logger = Context.logger?.getLogger('main')
if (logger) {
logger.error(logMessage)
}
}

let counter = `${apiRoute}_${errorType}`
if (opts?.customCounterSuffix) {
Expand Down
24 changes: 16 additions & 8 deletions test/unit/src/types/Helpers.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,18 @@ jest.mock('../../../../src/logger', () => ({
},
}))

// Mock Context.logger
jest.mock('../../../../src/p2p/Context', () => {
const mockLoggerError = jest.fn()
const mockGetLogger = jest.fn(() => ({ error: mockLoggerError }))
return {
logger: { getLogger: mockGetLogger },
__mockLoggerError: mockLoggerError,
__mockGetLogger: mockGetLogger,
}
})
const { __mockLoggerError: mockLoggerError, __mockGetLogger: mockGetLogger } = require('../../../../src/p2p/Context')

// Mock console.log to prevent output during tests
const originalConsoleLog = console.log
beforeAll(() => {
Expand Down Expand Up @@ -213,7 +225,7 @@ describe('Helpers', () => {

// Assert
expect(result).toBeNull()
expect(console.log).toHaveBeenCalled()
expect(mockGetLogger).toHaveBeenCalled()
})

it('should include custom error log in the console message', () => {
Expand All @@ -227,7 +239,7 @@ describe('Helpers', () => {
getStreamWithTypeCheck(buffer.getBuffer(), TypeIdentifierEnum.cWrappedResp, customError)

// Assert
expect(console.log).toHaveBeenCalledWith(expect.stringContaining(customError))
expect(mockGetLogger).toHaveBeenCalled()
})
})

Expand Down Expand Up @@ -298,11 +310,7 @@ describe('Helpers', () => {
requestErrorHandler(apiRoute, errorType, header)

// Assert
expect(console.log).toHaveBeenCalledWith(expect.stringContaining(apiRoute))
expect(console.log).toHaveBeenCalledWith(expect.stringContaining(errorType))
expect(console.log).toHaveBeenCalledWith(expect.stringContaining(header.sender_id))
expect(console.log).toHaveBeenCalledWith(expect.stringContaining(header.tracker_id))
expect(console.log).toHaveBeenCalledWith(expect.stringContaining(header.verification_data))
expect(mockGetLogger).toHaveBeenCalledWith('main')
})

it('should include custom error log in the message', () => {
Expand All @@ -320,7 +328,7 @@ describe('Helpers', () => {
requestErrorHandler(apiRoute, errorType, header, { customErrorLog })

// Assert
expect(console.log).toHaveBeenCalledWith(expect.stringContaining(customErrorLog))
expect(mockGetLogger).toHaveBeenCalledWith('main')
})

it('should increment the correct counter in nestedCountersInstance', () => {
Expand Down
Loading