Replace sidebar with compact header and shared friend dashboards
This commit is contained in:
@@ -805,3 +805,62 @@ def test_refresh_preserves_sharing_and_converts_running_units(app):
|
||||
assert result.samples[0]["vertical_oscillation"] == 8.5
|
||||
assert result.samples[0]["ground_contact"] == 250
|
||||
assert result.samples[0]["power"] == 300
|
||||
|
||||
|
||||
def test_friend_dashboard_records_and_totals_exclude_private_runs(app):
|
||||
from flask import template_rendered
|
||||
|
||||
with app.app_context():
|
||||
private = db.session.get(Activity, 1)
|
||||
private.samples = [{"distance": 0, "time": 0}, {"distance": 5000, "time": 1000}]
|
||||
persist_efforts(private)
|
||||
shared = Activity(
|
||||
owner_id=1,
|
||||
source_key="shared-record",
|
||||
title="Shared slower run",
|
||||
sport="running",
|
||||
visibility="friends",
|
||||
has_route=True,
|
||||
started_at=datetime(2026, 10, 1, tzinfo=UTC),
|
||||
distance_m=5000,
|
||||
duration_s=1500,
|
||||
elevation_m=20,
|
||||
samples=[{"distance": 0, "time": 0}, {"distance": 5000, "time": 1500}],
|
||||
)
|
||||
persist_efforts(shared)
|
||||
shared.has_route = True
|
||||
db.session.add(shared)
|
||||
db.session.add(Friendship(low_id=1, high_id=2, requested_by=1, status="accepted"))
|
||||
db.session.commit()
|
||||
contexts = []
|
||||
|
||||
def capture(_app, template, context, **_extra):
|
||||
contexts.append(context)
|
||||
|
||||
template_rendered.connect(capture, app)
|
||||
client = app.test_client()
|
||||
login(client, "other")
|
||||
try:
|
||||
response = client.get("/u/runner")
|
||||
assert response.status_code == 200
|
||||
context = contexts[-1]
|
||||
assert context["stats"]["count"] == 1
|
||||
assert context["stats"]["distance"] == 5
|
||||
assert context["stats"]["duration"] == 1500
|
||||
assert context["mapped_run"].title == "Shared slower run"
|
||||
assert all(
|
||||
record["activity"].title == "Shared slower run"
|
||||
for record in context["record_book"]["records"]
|
||||
)
|
||||
assert context["record_book"]["records"][-1]["seconds"] == 1500
|
||||
assert b"A quiet morning run" not in response.data
|
||||
assert b"header-import" not in response.data
|
||||
assert b"Shared profile" not in response.data
|
||||
assert b'<aside class="sidebar"' not in response.data
|
||||
assert b"Friends \xc2\xb7 Shared runs" in response.data
|
||||
assert client.post("/activities/2/edit", data={"title": "changed"}).status_code == 404
|
||||
finally:
|
||||
template_rendered.disconnect(capture, app)
|
||||
owner = app.test_client()
|
||||
login(owner)
|
||||
assert owner.get("/u/runner").location.endswith("/dashboard")
|
||||
|
||||
Reference in New Issue
Block a user