test: improve integration test with dynamic mock and full coverage

This commit is contained in:
2026-04-13 14:40:49 -04:00
parent 85fe689d86
commit afffdeafb8

View File

@@ -141,8 +141,16 @@ def _make_config(vault_path: Path, vector_store_path: Path) -> Config:
@patch("companion.rag.search.OllamaEmbedder")
@patch("companion.rag.indexer.OllamaEmbedder")
def test_index_and_search_flow(mock_indexer_embedder, mock_search_embedder):
"""Verify end-to-end indexing and semantic search with mocked embeddings."""
mock_embed = MagicMock()
mock_embed.embed.return_value = [[1.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 0.0]]
def mock_embed_side_effect(texts):
return [
[1.0, 0.0, 0.0, 0.0] if i == 0 else [0.0, 1.0, 0.0, 0.0]
for i in range(len(texts))
]
mock_embed.embed.side_effect = mock_embed_side_effect
mock_indexer_embedder.return_value = mock_embed
mock_search_embedder.return_value = mock_embed
@@ -171,3 +179,8 @@ def test_index_and_search_flow(mock_indexer_embedder, mock_search_embedder):
assert len(results) >= 1
files = {r["source_file"] for r in results}
assert "note1.md" in files
results = engine.search("goodbye")
assert len(results) >= 1
files = {r["source_file"] for r in results}
assert "note2.md" in files