import { describe, it, expect } from 'vitest'
import { collectVisibleText, collectElementOutline } from './collect-visible'

describe('collectVisibleText', () => {
  it('collects visible text tokens joined by pipe', () => {
    document.body.innerHTML = '<div><span>Alpha</span><span>Beta</span></div>'
    // jsdom 无 checkVisibility → 函数回退 true，全部计入
    const text = collectVisibleText()
    expect(text).toContain('Alpha')
    expect(text).toContain('Beta')
  })
})

describe('collectElementOutline', () => {
  it('counts semantic + custom elements', () => {
    document.body.innerHTML = '<nav><a>x</a><button>y</button></nav><tvu-top-bar></tvu-top-bar>'
    const outline = collectElementOutline()
    expect(outline.nav).toBe(1)
    expect(outline.a).toBe(1)
    expect(outline.button).toBe(1)
    expect(outline.customElement).toBe(1)
  })
})
