import { describe, expect, it } from 'vitest'; import { renderStatusIndicator } from '../vault-status'; describe('vault status indicator', () => { it('renders "in sync" when ahead/behind/pending all zero', () => { const el = document.createElement('div'); renderStatusIndicator(el, { ahead: 0, behind: 0, lastSyncAt: 1700000000, pendingItems: 0 }); expect(el.textContent).toMatch(/in sync/i); }); it('renders "N ahead" when ahead is non-zero', () => { const el = document.createElement('div'); renderStatusIndicator(el, { ahead: 3, behind: 0, lastSyncAt: 1700000000, pendingItems: 0 }); expect(el.textContent).toMatch(/3 ahead/i); }); it('renders "N behind" when behind is non-zero', () => { const el = document.createElement('div'); renderStatusIndicator(el, { ahead: 0, behind: 2, lastSyncAt: 1700000000, pendingItems: 0 }); expect(el.textContent).toMatch(/2 behind/i); }); it('renders "N pending" when pendingItems is non-zero', () => { const el = document.createElement('div'); renderStatusIndicator(el, { ahead: 0, behind: 0, lastSyncAt: 1700000000, pendingItems: 5 }); expect(el.textContent).toMatch(/5 pending/i); }); it('renders "never synced" when lastSyncAt is null', () => { const el = document.createElement('div'); renderStatusIndicator(el, { ahead: 0, behind: 0, lastSyncAt: null, pendingItems: 0 }); expect(el.textContent).toMatch(/never synced/i); }); });