mirror of
https://github.com/pewdiepie-archdaemon/odysseus.git
synced 2026-09-23 16:42:21 +02:00
Squash Odysseus development history
This commit is contained in:
@@ -0,0 +1,53 @@
|
||||
from pathlib import Path
|
||||
import re
|
||||
|
||||
|
||||
ROOT = Path(__file__).resolve().parent.parent
|
||||
|
||||
|
||||
def test_tasks_open_defaults_to_completed_with_empty_fallback():
|
||||
src = (ROOT / "static/js/tasks.js").read_text()
|
||||
|
||||
assert "let _completedFallbackToTasksOnce = false;" in src
|
||||
assert "const openCompletedByDefault = !focusId && o.filter === undefined && !openActivityForFailure;" in src
|
||||
assert "_completedFallbackToTasksOnce = openCompletedByDefault && !openCompletedForNotification;" in src
|
||||
assert "_switchTab(openActivityForFailure ? 'activity' : openCompletedByDefault ? 'completed' : 'tasks');" in src
|
||||
assert "if (_completedFallbackToTasksOnce)" in src
|
||||
assert "_switchTab('tasks');" in src
|
||||
|
||||
|
||||
def test_tasks_completed_default_asset_versions_are_bumped():
|
||||
app_src = (ROOT / "static/app.js").read_text()
|
||||
sw_src = (ROOT / "static/sw.js").read_text()
|
||||
|
||||
app_match = re.search(r"(?:\./js|/static/js)/tasks\.js\?v=([^'\"]+)", app_src)
|
||||
sw_match = re.search(r"/static/js/tasks\.js\?v=([^'\"]+)", sw_src)
|
||||
|
||||
assert app_match, "app.js must import a versioned Tasks module"
|
||||
assert sw_match, "the service worker must precache the exact versioned Tasks URL"
|
||||
assert sw_match.group(1) == app_match.group(1)
|
||||
|
||||
|
||||
def test_tasks_filter_chips_include_active_paused_switch():
|
||||
src = (ROOT / "static/js/tasks.js").read_text()
|
||||
|
||||
assert "let _taskStatusFilter = 'active';" in src
|
||||
assert "const _taskStatus = (t) => String(t?.status || '').toLowerCase();" in src
|
||||
assert "const activeCount = _tasks.filter(t => _taskStatus(t) === 'active').length;" in src
|
||||
assert "const pausedCount = _tasks.filter(t => _taskStatus(t) === 'paused').length;" in src
|
||||
assert "bar.style.display = _tasks.length ? 'flex' : 'none';" in src
|
||||
assert "task-status-filter-chip" in src
|
||||
assert "mkChip(`active (${activeCount})`, 'active', _taskStatusFilter === 'active', 'status');" in src
|
||||
assert "mkChip(`paused (${pausedCount})`, 'paused', _taskStatusFilter === 'paused', 'status');" in src
|
||||
assert "if (_taskStatusFilter && String(t.status || '').toLowerCase() !== _taskStatusFilter) return false;" in src
|
||||
assert "if (value === null) _taskStatusFilter = null;" in src
|
||||
|
||||
|
||||
def test_tasks_completed_view_exposes_active_paused_shortcuts():
|
||||
src = (ROOT / "static/js/tasks.js").read_text()
|
||||
|
||||
assert "function _renderCompletedTaskStatusShortcuts()" in src
|
||||
assert 'id="tasks-completed-status-chips"' in src
|
||||
assert "_taskStatusFilter = value;" in src
|
||||
assert "_switchTab('tasks');" in src
|
||||
assert "if (_activeTab === 'completed') _renderCompletedTaskStatusShortcuts();" in src
|
||||
Reference in New Issue
Block a user