up
This commit is contained in:
@@ -0,0 +1,21 @@
|
||||
import assert from 'node:assert/strict'
|
||||
import { test } from 'node:test'
|
||||
import { networkFailure } from './request-error.js'
|
||||
|
||||
test('безопасная причина соединения извлекается из вложенных Node-ошибок', () => {
|
||||
for (const [code, message] of [
|
||||
['ECONNREFUSED', 'Сервер отклонил соединение'],
|
||||
['ECONNRESET', 'Соединение с сервером прервано'],
|
||||
['UND_ERR_CONNECT_TIMEOUT', 'Превышено время ожидания соединения с сервером'],
|
||||
['CERT_HAS_EXPIRED', 'Ошибка защищённого соединения с сервером'],
|
||||
['SECRET', 'Сервер недоступен'],
|
||||
]) {
|
||||
const error = new TypeError('SECRET', {
|
||||
cause: new AggregateError([Object.assign(new Error('SECRET'), { code })]),
|
||||
})
|
||||
const result = networkFailure(error, new AbortController().signal)
|
||||
assert.equal(result.message, message)
|
||||
assert.equal(result.code, code === 'SECRET' ? 'NETWORK' : code)
|
||||
assert.ok(!result.message.includes('SECRET'))
|
||||
}
|
||||
})
|
||||
Reference in New Issue
Block a user