{% extends "base.html" %} {% from "macros.html" import finding %} {% block title %}PagePatrol run · {{ passed }}/{{ report.scenarios | length }} passed{% endblock %} {% block content %}

{{ passed }} of {{ report.scenarios | length }} scenario{{ "" if report.scenarios | length == 1 else "s" }} passed

{% if report.base_url %}

{{ report.base_url }}

{% endif %}
{{ totals.error }}errors
{{ totals.warning }}warnings
{{ totals.info }}notes
{% if report.scenarios | length > 1 %} {% endif %} {% for s in report.scenarios %}

{{ s.status }} {{ s.name }}

{% if s.source %}{{ s.source }} · {% endif %}{{ s.viewport.name }} {{ s.viewport.width }}×{{ s.viewport.height }} · {{ browser_names[s.browser] }}

    {% for step in s.steps %}
  1. {{ step.status }} {{ step.description }} {% if step.via == "ai" %}AI{% elif step.via == "recording" %}replayed{% endif %} {{ step.duration_ms }} ms
    {% if step.actions %}
      {% for a in step.actions %}
    1. {{ a }}
    2. {% endfor %}
    {% endif %} {% if step.note %}
    {{ step.note }}
    {% endif %} {% if step.error %}
    {{ step.error }}
    {% endif %} {% if step.performance %}
    {% for t in perf_tiles(step.performance) %}
    {{ t.label }} {{ t.value or "not measured" }}
    {% endfor %}

    {{ format_bytes(step.performance.transfer_bytes) }} in {{ step.performance.requests }} requests · {% if step.performance.throttling %}loaded as {{ step.performance.throttling }}{% else %}loaded over this computer's connection{% endif %}

    {% endif %} {% if step.screenshot or step.findings %}
    {% if step.screenshot %} After step {{ loop.index }} {% endif %} {% if step.findings %}
    {% for g in group_by_check(step.findings) %}
    {{ g.check }} {{ g.count }}
    {% for f in g.findings[:3] %}{{ finding(f) }}{% endfor %} {% if g.count > 3 %}
    {{ g.count - 3 }} more {% for f in g.findings[3:] %}{{ finding(f) }}{% endfor %}
    {% endif %}
    {% endfor %}
    {% endif %}
    {% endif %} {% if step.url %}
    {{ step.url }}
    {% endif %}
  2. {% endfor %}
{% if s.console %}
Console output ({{ s.console | length }})
{% endif %}
{% endfor %} {% endblock %}