import { describe, it, expect } from 'vitest'
import { EventType, TaskStatus } from './types'

describe('EventType constants', () => {
  it('has correct UserInput value', () => {
    expect(EventType.UserInput).toBe('user_input')
  })

  it('has correct Message value', () => {
    expect(EventType.Message).toBe('message')
  })

  it('has correct ToolCall value', () => {
    expect(EventType.ToolCall).toBe('tool_call')
  })

  it('has correct TaskUpdate value', () => {
    expect(EventType.TaskUpdate).toBe('task_update')
  })

  it('has correct TaskEnd value', () => {
    expect(EventType.TaskEnd).toBe('task_end')
  })

  it('has correct Error value', () => {
    expect(EventType.Error).toBe('error')
  })
})

describe('TaskStatus constants', () => {
  it('has correct PENDING value', () => {
    expect(TaskStatus.PENDING).toBe('pending')
  })

  it('has correct IN_PROGRESS value', () => {
    expect(TaskStatus.IN_PROGRESS).toBe('in_progress')
  })

  it('has correct COMPLETED value', () => {
    expect(TaskStatus.COMPLETED).toBe('completed')
  })

  it('has correct STOPPED value', () => {
    expect(TaskStatus.STOPPED).toBe('stopped')
  })

  it('has correct PAUSED value', () => {
    expect(TaskStatus.PAUSED).toBe('paused')
  })

  it('has correct FAILED value', () => {
    expect(TaskStatus.FAILED).toBe('failed')
  })

  it('has correct CANCELLED value', () => {
    expect(TaskStatus.CANCELLED).toBe('cancelled')
  })
})
