import { describe, it, expect } from 'vitest' import { DraftReconciliationError, isDraftReconciliationError } from '../../src/automerge-markdown/errors' describe('DraftReconciliationError', () => { it('constructs with default empty issues', () => { const err = new DraftReconciliationError('native-invariant', 'boom') expect(err.message).toBe('boom') expect(err.name).toBe('DraftReconciliationError') expect(err.reason).toBe('native-invariant') expect(err.issues).toEqual([]) }) it('constructs with provided issues', () => { const issues = [{ kind: 'unsupported' as const, message: 'bad intent' }] const err = new DraftReconciliationError('schema', 'failed', issues) expect(err.reason).toBe('schema') expect(err.issues).toBe(issues) }) it('is identified by isDraftReconciliationError', () => { const err = new DraftReconciliationError('core-spec', 'boom') expect(isDraftReconciliationError(err)).toBe(true) }) it('isDraftReconciliationError returns false for regular Error', () => { expect(isDraftReconciliationError(new Error('plain'))).toBe(false) }) it('isDraftReconciliationError returns false for non-error values', () => { expect(isDraftReconciliationError(null)).toBe(false) expect(isDraftReconciliationError('string')).toBe(false) expect(isDraftReconciliationError(undefined)).toBe(false) }) })