"""Tests para pdf_add_text."""

import sys
import os

sys.path.insert(0, os.path.dirname(__file__))
sys.path.insert(0, os.path.join(os.path.dirname(__file__), "..", "..", "..", "python", "types", "infra"))

from pdf_create import pdf_create
from pdf_add_page import pdf_add_page
from pdf_add_text import pdf_add_text
from pdf_save import pdf_save
from pdf_doc import PDFDoc
from pdf_style import PDFStyle


def test_texto_simple_con_estilo_defecto():
    doc = pdf_create(title="Test")
    doc = pdf_add_page(doc)
    doc = pdf_add_text(doc, "Hola mundo")
    assert isinstance(doc, PDFDoc)
    # El PDF debe ser valido
    pdf_bytes = pdf_save(doc)
    assert pdf_bytes[:4] == b"%PDF"


def test_texto_con_estilo_personalizado_bold_centrado():
    doc = pdf_create()
    doc = pdf_add_page(doc)
    style = PDFStyle(font_family="Helvetica-Bold", font_size=18.0, alignment="center", color="#FF0000")
    doc = pdf_add_text(doc, "Titulo en Rojo", style=style)
    pdf_bytes = pdf_save(doc)
    assert pdf_bytes[:4] == b"%PDF"


def test_texto_multilinea_con_saltos():
    doc = pdf_create()
    doc = pdf_add_page(doc)
    doc = pdf_add_text(doc, "Linea 1\nLinea 2\nLinea 3")
    pdf_bytes = pdf_save(doc)
    assert pdf_bytes[:4] == b"%PDF"
    assert len(pdf_bytes) > 100
