from pathlib import Path from app.config import Settings from app.schemas import SourceFile from app.services.chunker import Chunker def test_chunker_preserves_line_ranges(tmp_path: Path): source = tmp_path / "demo.py" source.write_text("a = 1\nb = 2\nc = 3\n", encoding="utf-8") source_file = SourceFile( path="demo.py", absolute_path=str(source), size_bytes=source.stat().st_size, language="Python", ) chunks = Chunker(Settings(max_chars_per_chunk=8)).chunk_file(source_file) assert len(chunks) > 1 assert chunks[0].line_start == 1 assert chunks[-1].line_end == 3