import { describe, it, expect } from 'vitest'
import { useContactModal } from './useContactModal'

describe('useContactModal', () => {
  it('starts closed with no preselected subject', () => {
    const { isOpen, subject } = useContactModal()
    expect(isOpen.value).toBe(false)
    expect(subject.value).toBe('')
  })

  it('open() sets isOpen and stores the preselected subject', () => {
    const { isOpen, subject, open } = useContactModal()
    open('volunteer')
    expect(isOpen.value).toBe(true)
    expect(subject.value).toBe('volunteer')
  })

  it('open() defaults to an empty subject when none is given', () => {
    const { subject, open } = useContactModal()
    open('volunteer')
    open()
    expect(subject.value).toBe('')
  })

  it('close() sets isOpen to false without touching the subject', () => {
    const { isOpen, subject, open, close } = useContactModal()
    open('partner')
    close()
    expect(isOpen.value).toBe(false)
    expect(subject.value).toBe('partner')
  })

  it('shares state across calls (useState is keyed, not per-instance)', () => {
    const first = useContactModal()
    const second = useContactModal()
    first.open('programs')
    expect(second.isOpen.value).toBe(true)
    expect(second.subject.value).toBe('programs')
  })
})
