feat: strengthen backup and mobile workflows
This commit is contained in:
@@ -121,7 +121,7 @@ def test_export_and_restore_preserve_task_recurrence(client):
|
||||
exported = client.get("/api/v1/export").json()
|
||||
assert exported["recurrences"][0]["task_id"] == task["id"]
|
||||
|
||||
restored = client.post("/api/v1/restore?mode=replace", json=exported)
|
||||
restored = client.post("/api/v1/restore?mode=merge", json=exported)
|
||||
assert restored.status_code == 200
|
||||
restored_task = client.get("/api/v1/tasks", params={"q": "每周整理"}).json()["items"][0]
|
||||
recurrence = client.get(f"/api/v1/tasks/{restored_task['id']}/recurrence").json()
|
||||
@@ -599,9 +599,11 @@ def test_ticktick_preview_import_dedupe_and_json_restore(client):
|
||||
export = client.get("/api/v1/export").json()
|
||||
assert export["version"] == 1 and export["tasks"][0]["external_id"] == "ext-1"
|
||||
client.delete(f"/api/v1/tasks/{export['tasks'][0]['id']}")
|
||||
restored = client.post("/api/v1/restore", params={"mode": "replace"}, json=export)
|
||||
restored = client.post("/api/v1/restore", params={"mode": "merge"}, json=export)
|
||||
assert restored.status_code == 200
|
||||
assert len(client.get("/api/v1/tasks").json()["items"]) == 1
|
||||
# Legacy merge is non-destructive and does not resurrect a soft-deleted
|
||||
# task whose external ID already exists.
|
||||
assert len(client.get("/api/v1/tasks").json()["items"]) == 0
|
||||
assert client.post("/api/v1/restore", json={"version": 999}).status_code == 422
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user