fix: persist cleared knowledge collection timestamps
This commit is contained in:
@@ -156,6 +156,52 @@ def test_review_edit_and_history(client):
|
||||
assert events["items"][1]["snapshot"]["item"]["verification_status"] == "verified"
|
||||
|
||||
|
||||
def test_clear_knowledge_collection_time_requires_new_evidence(client):
|
||||
verified = review(client, knowledge(client)).json()
|
||||
path = f"/api/knowledge/{verified['id']}"
|
||||
before = client.get(path + "/history").json()["items"]
|
||||
|
||||
response = client.patch(
|
||||
path, json={"expected_version": verified["version"], "collected_at": None}
|
||||
)
|
||||
|
||||
assert response.status_code == 200
|
||||
cleared = response.json()
|
||||
assert cleared["collected_at"] is None
|
||||
assert cleared["version"] == verified["version"] + 1
|
||||
assert cleared["verification_status"] == "pending"
|
||||
assert cleared["reviewer"] is None and cleared["reviewed_at"] is None
|
||||
assert cleared["verification_notes"] is None
|
||||
assert review(client, cleared).status_code == 422
|
||||
assert client.get(path).json() == cleared
|
||||
events = client.get(path + "/history").json()["items"]
|
||||
assert events[0]["snapshot"]["item"]["collected_at"] is None
|
||||
assert events[1:] == before
|
||||
assert (
|
||||
client.patch(
|
||||
path, json={"expected_version": verified["version"], "collected_at": COLLECTED}
|
||||
).status_code
|
||||
== 409
|
||||
)
|
||||
|
||||
restored = client.patch(
|
||||
path, json={"expected_version": cleared["version"], "collected_at": COLLECTED}
|
||||
).json()
|
||||
assert review(client, restored).status_code == 200
|
||||
|
||||
|
||||
def test_document_collection_time_cannot_be_cleared(client):
|
||||
doc = document(client, source(client)["id"])
|
||||
path = f"/api/documents/{doc['id']}"
|
||||
before = client.get(path + "/history").json()
|
||||
|
||||
response = client.patch(path, json={"expected_version": doc["version"], "collected_at": None})
|
||||
|
||||
assert response.status_code == 422
|
||||
assert client.get(path).json() == doc
|
||||
assert client.get(path + "/history").json() == before
|
||||
|
||||
|
||||
def test_source_document_changes_invalidate_evidence(client):
|
||||
src = source(client)
|
||||
doc = document(client, src["id"])
|
||||
|
||||
Reference in New Issue
Block a user