"""Tests para extract_obsidian_embeds.""" from extract_obsidian_embeds import extract_obsidian_embeds def test_solo_embeds_ignora_wikilinks(): # Golden path: mezcla de [[Nota normal]] y ![[imagen.jpg]] -> solo el embed. body = "Texto con [[Nota normal]] y un embed ![[imagen.jpg]]." assert extract_obsidian_embeds(body) == ["imagen.jpg"] def test_varios_embeds_orden_y_dedup(): # Edge: varios embeds preservan orden y deduplican. body = "![[a.jpg]] luego ![[b.pdf]] luego ![[a.jpg]] y ![[c.png]]" assert extract_obsidian_embeds(body) == ["a.jpg", "b.pdf", "c.png"] def test_quita_alias_y_ancla(): # Edge: alias (|) y heading/ancla (#) se descartan del target. body = "![[imagen.jpg|300]] y ![[nota#Seccion]]" assert extract_obsidian_embeds(body) == ["imagen.jpg", "nota"] def test_nombre_con_espacios_y_parentesis(): # Edge: nombre de archivo real con espacios y parentesis se preserva. body = "Mira ![[dni enmanuel (2).jpg]] adjunto." assert extract_obsidian_embeds(body) == ["dni enmanuel (2).jpg"] def test_sin_embeds_solo_wikilinks(): assert extract_obsidian_embeds("solo [[wikilink]] y [[otro|alias]]") == [] def test_body_vacio(): assert extract_obsidian_embeds("") == []