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

describe('getBackendAssetUrl', () => {

    it('devuelve string vacío si path es null', () => {
        expect(getBackendAssetUrl(null)).toBe('')
    })

    it('devuelve string vacío si path es undefined', () => {
        expect(getBackendAssetUrl(undefined)).toBe('')
    })

    it('devuelve la URL tal cual si ya es completa', () => {
        expect(getBackendAssetUrl('http://ejemplo.com/archivo.png')).toBe('http://ejemplo.com/archivo.png')
    })

    it('reescribe host interno de Docker a host publico', () => {
        expect(getBackendAssetUrl('http://hub-backend:8000/api/static/avatars/file.png')).toBe('http://localhost:8000/api/static/avatars/file.png')
    })

    it('reescribe URL sin protocolo con host interno', () => {
        expect(getBackendAssetUrl('hub-backend:8000/api/static/avatars/file.png')).toBe('http://localhost:8000/api/static/avatars/file.png')
    })

    it('evita duplicar /api en la URL', () => {
        expect(getBackendAssetUrl('/api/v1/items')).toBe('http://localhost:8000/api/v1/items')
    })

  it('construye URL completa para ruta relativa (VITE_API_URL por defecto host:8000)', () => {
    // getBackendAssetUrl solo acepta path; la base sale de VITE o fallback http://localhost:8000
    expect(getBackendAssetUrl('/uploads/file.png')).toBe('http://localhost:8000/uploads/file.png')
  })

})