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

describe('getFileNameFromPath', () => {

    it('devuelve string vacío si recibe null', () => {
        expect(getFileNameFromPath(null)).toBe('')
    })

    it('devuelve string vacío si recibe undefined', () => {
        expect(getFileNameFromPath(undefined)).toBe('')
    })

    it('devuelve solo el nombre del archivo', () => {
        expect(getFileNameFromPath('/uploads/avatars/file.png')).toBe('file.png')
    })

    it('devuelve nombre sin query string', () => {
        expect(getFileNameFromPath('/uploads/file.png?token=123')).toBe('file.png')
    })

})

describe('getFileDisplayName', () => {

    it('devuelve label por defecto si filePath es null', () => {
        expect(getFileDisplayName(null)).toBe('Seleccionar archivo')
    })

    it('devuelve label por defecto si filePath es undefined', () => {
        expect(getFileDisplayName(undefined)).toBe('Seleccionar archivo')
    })

    it('devuelve label personalizado si se pasa defaultLabel', () => {
        expect(getFileDisplayName(null, undefined, 'Subir archivo')).toBe('Subir archivo')
    })

    it('devuelve solo el nombre del archivo sin fileType', () => {
        expect(getFileDisplayName('/uploads/file.png')).toBe('file.png')
    })

    it('devuelve nombre con tipo en mayúsculas', () => {
        expect(getFileDisplayName('/uploads/file.png', 'pdf')).toBe('file.png (PDF)')
    })

})