import { describe, it, expect, beforeEach, vi } from 'vitest'
import { createPinia, setActivePinia } from 'pinia'
import { useAlertStore } from '@/stores/alerts'

describe('alert store notifications', () => {
  beforeEach(() => {
    setActivePinia(createPinia())
  })

  it('queuesBannerAlertsForNewCriticalItems', () => {
    const store = useAlertStore()
    const critical = {
      id: 'alert-1',
      severity: 'Critical',
      status: 'Open',
      alertType: 'SofaSepsis',
    }

    expect(store.applyPollResults([critical])).toEqual([])
    expect(store.bannerAlerts).toEqual([])

    const next = {
      id: 'alert-2',
      severity: 'Critical',
      status: 'Open',
      alertType: 'GcsCritical',
    }
    const newAlerts = store.applyPollResults([critical, next])
    expect(newAlerts.map(alert => alert.id)).toEqual(['alert-2'])
    expect(store.bannerAlerts.map(alert => alert.id)).toEqual(['alert-2'])
  })

  it('dismissesBannerAlert', () => {
    const store = useAlertStore()
    store.bannerAlerts = [{ id: 'alert-1' }]
    store.dismissBannerAlert('alert-1')
    expect(store.bannerAlerts).toEqual([])
  })
})
