"""Online-Hilfe: Seiten, Suche, Links und der Knopf in der oberen Leiste.""" import re import pytest from app.help import service as help_pages def test_hilfe_knopf_und_uebersicht(browser, people, db): ben = browser("ben") page = ben.get("/workspaces").text assert 'class="btn btn-ghost btn-sm aiw-help-link" href="/hilfe"' in page and "Hilfe" in page index = ben.get("/hilfe").text for p in help_pages.PAGES: assert f'href="/hilfe/{p.slug}"' in index # ben ist nur Mitglied: Nutzer-Anleitung hervorgehoben, Admin-Seiten nicht assert re.search(r'aiw-help-mine" href="/hilfe/nutzer"', index) assert not re.search(r'aiw-help-mine" href="/hilfe/plattform-admin"', index) from app.identity.models import User with db.session() as session: session.get(User, people["anna"]).is_admin = True assert re.search(r'aiw-help-mine" href="/hilfe/plattform-admin"', browser("anna").get("/hilfe").text) def test_hilfe_nur_angemeldet(app): from fastapi.testclient import TestClient with TestClient(app) as client: assert "/hilfe" not in client.get("/login").text for url in ("/hilfe", "/hilfe/faq"): assert client.get(url, follow_redirects=False).status_code in (302, 303) @pytest.mark.parametrize("slug", [p.slug for p in help_pages.PAGES]) def test_alle_seiten_mit_inhalt_und_ankern(browser, people, slug): text = browser("ben").get(f"/hilfe/{slug}").text rendered = help_pages.render(slug) assert rendered.toc and "