{% extends "layout.html" %} {# Shared chrome for the cucu / browser / stdout / stderr / errors log panels. Collapsed state and follow flag are driven via Alpine's panelsCollapsed{} and followFlags{} maps. timeline_data is an Alpine expression evaluating to an array of {leftPct, widthPct} (kind='presence') or {leftPct, level} (kind='ticks'). #} {% macro log_panel(panel_id, title, follow_chk_id, content_id, resize_handle_id, timeline_track_id=None, timeline_cursor_id=None, timeline_data=None, timeline_kind='presence') %}
{{ title }} {% if timeline_track_id %}
{% if timeline_kind == 'ticks' %} {% else %} {% endif %}
{% endif %}
{{ caller() }}
{% endmacro %} {% block nav %} {# Inline theme-init runs before any paint to prevent flash-of-wrong-theme. #}
{% endblock %} {% block content %}
{% set _mht = namespace(files=[]) %} {% for lf in scenario['logs'] %}{% if lf['name'].endswith('.mht') %}{% set _mht.files = _mht.files + [lf] %}{% endif %}{% endfor %} {% if _mht.files %} {% endif %}
Scenario {{ escape(scenario['name']) }}
{% if feature['tags'] or scenario['tags'] %}
{{ feature['tags'] }} {{ scenario['tags'] }}
{% endif %} {% if scenario['sub_headers'] %}
{{ scenario['sub_headers'] }}
{% endif %}
Pics
{% for step in steps %} {% set si = loop.index0 %} {% endfor %}
– / – Step 1 / {{ steps | length }} Step Pic – / –
Steps
Scenario: {{ escape(scenario['name']) }}
{% for step in steps %}
{% if step['heading_level'] %} {{ escape(step['keyword']) }} {{ escape(step['name']) }} {% else %} {{ escape(step['keyword']) }}{{ escape(step['name']) }} {% endif %}
{% endfor %}
{% if steps | selectattr('debug_output') | list %} {% call log_panel('vp-cucu-panel', 'Cucu', 'cucu-follow-chk', 'vp-cucu-content', 'cucu-resize-handle', timeline_track_id='cucu-timeline-track', timeline_cursor_id='cucu-tl-cursor', timeline_data='cucuBars') %} {% endcall %} {% endif %} {% set _has_browser = namespace(value=false) %} {% for step in steps %}{% if step['browser_logs'] %}{% set _has_browser.value = true %}{% endif %}{% endfor %} {% if _has_browser.value %} {% call log_panel('vp-browser-panel', 'Browser', 'browser-follow-chk', 'vp-browser-content', 'browser-resize-handle', timeline_track_id='browser-timeline-track', timeline_cursor_id='browser-tl-cursor', timeline_data='browserTicks', timeline_kind='ticks') %} {% endcall %} {% endif %} {% if steps | selectattr('stdout') | list %} {% call log_panel('vp-stdout-panel', 'Stdout', 'stdout-follow-chk', 'vp-stdout-content', 'stdout-resize-handle', timeline_track_id='stdout-timeline-track', timeline_cursor_id='stdout-tl-cursor', timeline_data='stdoutBars') %} {% endcall %} {% endif %} {% if steps | selectattr('stderr') | list %} {% call log_panel('vp-stderr-panel', 'Stderr', 'stderr-follow-chk', 'vp-stderr-content', 'stderr-resize-handle') %} {% endcall %} {% endif %} {% if steps | selectattr('error_message') | list %} {% call log_panel('vp-errors-panel', 'Errors', 'errors-follow-chk', 'vp-errors-content', 'errors-resize-handle', timeline_track_id='errors-timeline-track', timeline_cursor_id='errors-tl-cursor', timeline_data='errorsBars') %} {% endcall %} {% endif %}
{% set _scen_ts = scenario['start_at'].timestamp() if scenario['start_at'] else none %} {% endblock %}