fix(search): 将搜索历史持久化到应用数据库

This commit is contained in:
2026-09-04 19:33:43 +08:00
parent 6eb97bf9ab
commit 1d0f19508a
9 changed files with 119 additions and 41 deletions
+22
View File
@@ -0,0 +1,22 @@
from fastapi.testclient import TestClient
from app.main import app
from app.services import search_history
def test_history_survives_new_clients_and_clear():
with TestClient(app) as client:
for query in ['first', 'second', ' first ']:
assert client.post('/api/search', json={'query': query, 'mode': 'fts'}).status_code == 200
assert client.get('/api/search/history').json() == {'queries': ['first', 'second']}
with TestClient(app) as client:
assert client.get('/api/search/history').json() == {'queries': ['first', 'second']}
assert client.delete('/api/search/history').json() == {'queries': []}
assert search_history.list_queries() == []
def test_history_is_bounded_and_blank_queries_are_ignored():
for number in range(12):
search_history.record(str(number))
search_history.record(' ')
assert search_history.list_queries() == [str(number) for number in range(11, 1, -1)]