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') })