test: expand security regression coverage

Agent-Logs-Url: https://github.com/MemPalace/mempalace/sessions/775f2fc4-3051-462e-8586-6d694b55da0d

Co-authored-by: igorls <4753812+igorls@users.noreply.github.com>
This commit is contained in:
copilot-swe-agent[bot]
2026-04-12 22:23:13 +00:00
committed by Igor Lins e Silva
parent c478dfa173
commit d2d4e62543
3 changed files with 29 additions and 6 deletions
+20
View File
@@ -102,6 +102,20 @@ class TestTailSentence:
assert result["was_sanitized"] is True
assert "MemPalace" in result["clean_query"] or "ChromaDB" in result["clean_query"]
def test_long_candidate_uses_last_sentence_fragment(self):
query = ("Prompt sentence. " * 30) + "Final search intent for architecture migration"
result = sanitize_query(query)
assert result["method"] == "tail_sentence"
assert result["clean_query"] == "Final search intent for architecture migration"
def test_long_candidate_strips_wrapping_quotes(self):
query = ("Prefix text " * 30) + '\n"' + ("x" * 260) + '"'
result = sanitize_query(query)
assert result["method"] == "tail_sentence"
assert not result["clean_query"].startswith('"')
assert not result["clean_query"].endswith('"')
assert len(result["clean_query"]) <= MAX_QUERY_LENGTH
class TestTailTruncation:
"""Step 4: Fallback — take the last MAX_QUERY_LENGTH characters."""
@@ -119,6 +133,12 @@ class TestTailTruncation:
result = sanitize_query(filler)
assert "IMPORTANT_QUERY_CONTENT" in result["clean_query"]
def test_tail_sentence_fallback_preserves_tail_without_delimiters(self):
filler = ("x" * 260) + "IMPORTANT_QUERY_CONTENT"
result = sanitize_query(filler)
assert result["method"] == "tail_sentence"
assert "IMPORTANT_QUERY_CONTENT" in result["clean_query"]
class TestLengthGuards:
"""Verify output length constraints."""