import { describe, it, expect } from 'vitest'
import { mount } from '@vue/test-utils'
import Tooltip from '../src/canonical/Tooltip.vue'

describe('Tooltip.content dual-form', () => {
  it('renders content as text via prop when slot absent', () => {
    const wrapper = mount(Tooltip, { props: { content: 'Hello', open: true } })

    expect(wrapper.find('.tooltip-content').text()).toBe('Hello')
  })

  it('renders #content slot when provided (slot wins over prop)', () => {
    const wrapper = mount(Tooltip, {
      props: { content: 'Fallback', open: true },
      slots: { content: '<em>Rich tip</em>' },
    })

    const tip = wrapper.find('.tooltip-content')
    expect(tip.html()).toContain('<em>Rich tip</em>')
    expect(tip.text()).not.toContain('Fallback')
  })

  it('keeps default slot as trigger element (no collision with content)', () => {
    const wrapper = mount(Tooltip, {
      props: { content: 'Tip', open: true },
      slots: { default: '<button>Trigger</button>' },
    })

    expect(wrapper.find('.tooltip-trigger button').text()).toBe('Trigger')
    expect(wrapper.find('.tooltip-content').text()).toBe('Tip')
  })
})
