webssh2/tests/logger.test.js

33 lines
1.1 KiB
JavaScript

import { test, mock } from 'node:test'
import assert from 'node:assert/strict'
import { createNamespacedDebug, logError } from '../app/logger.js'
test('createNamespacedDebug creates debug function with correct namespace', (t) => {
const debug = createNamespacedDebug('test')
assert.equal(typeof debug, 'function')
assert.equal(debug.namespace, 'webssh2:test')
})
test('logError logs error message without error object', (t) => {
const consoleMock = mock.method(console, 'error')
logError('test message')
assert.equal(consoleMock.mock.calls.length, 1)
assert.deepEqual(consoleMock.mock.calls[0].arguments, ['test message'])
consoleMock.mock.restore()
})
test('logError logs error message with error object', (t) => {
const consoleMock = mock.method(console, 'error')
const testError = new Error('test error')
logError('test message', testError)
assert.equal(consoleMock.mock.calls.length, 2)
assert.deepEqual(consoleMock.mock.calls[0].arguments, ['test message'])
assert.deepEqual(consoleMock.mock.calls[1].arguments, [`ERROR: ${testError}`])
consoleMock.mock.restore()
})