mirror of
https://github.com/pewdiepie-archdaemon/odysseus.git
synced 2026-08-05 02:45:28 +00:00
fix(email): normalize folder refresh query defaults
This commit is contained in:
parent
9bff67c7ae
commit
f6d944b082
2 changed files with 15 additions and 4 deletions
|
|
@ -3860,14 +3860,24 @@ def setup_email_routes():
|
|||
"""List IMAP folders."""
|
||||
if _fixture_email_enabled():
|
||||
return {"folders": ["INBOX", "Archive", "Sent"], "sync": {"source": "fixture"}}
|
||||
cached = None if refresh else _folder_cache_get(account_id, owner)
|
||||
try:
|
||||
cached_only_enabled = bool(int(cached_only or 0))
|
||||
except (TypeError, ValueError):
|
||||
cached_only_enabled = False
|
||||
if isinstance(refresh, str):
|
||||
refresh_enabled = refresh.strip().lower() in {"1", "true", "yes", "on"}
|
||||
elif isinstance(refresh, (bool, int)):
|
||||
refresh_enabled = bool(refresh)
|
||||
else:
|
||||
refresh_enabled = False
|
||||
cached = None if refresh_enabled else _folder_cache_get(account_id, owner)
|
||||
if cached is not None:
|
||||
payload = dict(cached)
|
||||
sync_meta = dict(payload.get("sync") or {})
|
||||
sync_meta["source"] = "folder_cache"
|
||||
payload["sync"] = sync_meta
|
||||
return payload
|
||||
if cached_only:
|
||||
if cached_only_enabled:
|
||||
stale = _folder_cache_get_stale(account_id, owner)
|
||||
if stale:
|
||||
payload = dict(stale)
|
||||
|
|
|
|||
|
|
@ -236,7 +236,7 @@ async def test_list_folders_refresh_bypasses_stale_folder_cache(monkeypatch):
|
|||
def test_email_library_handles_archive_folder_setup_flow():
|
||||
src = Path("static/js/emailLibrary.js").read_text(encoding="utf-8")
|
||||
|
||||
assert "import { folderDisplayName, isArchiveFolder, sortedFolders } from './emailInbox.js';" in src
|
||||
assert "import { folderDisplayName, isArchiveFolder, sortedFolders } from './emailInbox.js" in src
|
||||
assert "_archiveEmailWithFallback" in src
|
||||
assert "needs_archive_folder" in src
|
||||
assert "No Archive folder was found for this account. Create one named" in src
|
||||
|
|
@ -245,7 +245,8 @@ def test_email_library_handles_archive_folder_setup_flow():
|
|||
assert "const result = await _archiveEmailWithFallback(em.uid)" in src
|
||||
assert "actions.findIndex(a => a.label === 'Move to Archive')" in src
|
||||
assert "const isArchiveCurrentFolder = isArchiveFolder(state._libFolder)" in src
|
||||
assert "emailApiUrl('/api/email/folders', { refresh: refresh ? 1 : undefined })" in src
|
||||
assert "cached_only: (live || refresh) ? undefined : 1" in src
|
||||
assert "refresh: refresh ? 1 : undefined" in src
|
||||
assert "_loadFolders({ refresh: true })" in src
|
||||
assert "_loadFolders({ resetMissing: true, refresh: true })" in src
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue