Files
lms-fe/src/main/dockerStatus.test.ts
T

20 lines
983 B
TypeScript

import { strict as assert } from 'node:assert'
import { test } from 'node:test'
import { classifyDockerError } from './dockerStatus'
test('missing CLI is distinguished from an unavailable daemon', () => {
assert.equal(classifyDockerError('ENOENT', 'spawn docker ENOENT'), 'missing')
assert.equal(classifyDockerError(1, 'Cannot connect to the Docker daemon'), 'unavailable')
assert.equal(classifyDockerError(1, 'dial unix /run/docker.sock: connect: connection refused'), 'unavailable')
})
test('permission errors take precedence over connection errors', () => {
assert.equal(classifyDockerError(1, 'Cannot connect: permission denied'), 'permission')
assert.equal(classifyDockerError('EACCES', 'spawn docker EACCES'), 'permission')
})
test('timeouts and unknown failures do not imply Docker needs installing', () => {
assert.equal(classifyDockerError(null, 'Command failed: docker info'), 'error')
assert.equal(classifyDockerError(1, 'context not found'), 'error')
})