from app.utils.text_safety import is_embeddable_text, is_non_embeddable_path


def test_is_non_embeddable_path_matches_binary_extensions():
    assert is_non_embeddable_path("public/assets/img/free-stay.avif")
    assert not is_non_embeddable_path("app/page.tsx")


def test_is_embeddable_text_rejects_binary_payloads():
    assert not is_embeddable_text(
        b"\x00\x00\x00\x1cftypavif".decode("latin-1"),
        file_path="public/assets/img/free-stay.avif",
    )


def test_is_embeddable_text_accepts_normal_code():
    assert is_embeddable_text(
        "export function Page() { return null; }",
        file_path="app/page.tsx",
    )


def test_is_embeddable_text_rejects_null_bytes():
    assert not is_embeddable_text("hello\x00world", file_path="app/page.tsx")
