@php $covPct = $coverage['percent'] ?? 0; $covRyg = $covPct >= 60 ? 'green' : ($covPct >= 40 ? 'yellow' : 'red'); [$cbg,$cfg] = $rygColors[$covRyg] ?? ['#eef2f7','#334155']; $statusClass = fn ($s) => 'am-s-'.(in_array($s, ['queued','running','passed','failed','error','cancelling','cancelled'], true) ? $s : 'queued'); @endphp

Script Listing · Robot Framework

@if ($canManage) @endif
@if (! $configured)
No valid project path configured yet. Set it in Settings → Import Automation Script.
@endif {{-- Active run status (polls only while a run is active) --}} @if ($activeRun) @php $hbStale = $activeRun->status === 'running' && $activeRun->last_output_at && $activeRun->last_output_at->lt(now()->subSeconds(20)); @endphp
{{ ucfirst($activeRun->status) }} {{ $activeRun->scope === 'module' ? ($activeRun->module_name ?: 'Module') : 'All suites' }} @if ($activeRun->started_at) 0:00 @else waiting to start… @endif @if ($activeRun->pid)PID {{ $activeRun->pid }}@endif @if ($activeRun->last_output_at) {{ $hbStale ? '⚠ no output for '.$activeRun->last_output_at->diffForHumans(null, true).' — may be stalled' : 'last output '.$activeRun->last_output_at->diffForHumans() }} @endif @if ($canManage && in_array($activeRun->status, ['queued','running'], true)) @endif
@if ($activeRun->log_tail)
{{ $activeRun->log_tail }}
@endif
@endif {{-- Overview --}}
{{ rtrim(rtrim(number_format($covPct, 1), '0'), '.') }}%
Suite coverage
{{ $coverage['created'] }}/{{ $coverage['total'] }}
Modules automated
{{ $summary['pass_rate'] !== null ? $summary['pass_rate'].'%' : '—' }}
Pass rate (last run)
{{ $summary['last_run_at'] ? \Illuminate\Support\Carbon::parse($summary['last_run_at'])->diffForHumans() : '—' }}
Last run
{{-- Per-module coverage --}}

Modules · {{ $coverage['discovered'] }} suites found in the project

@php $cols = $canManage ? 8 : 7; @endphp
@if($canManage)@endif @forelse ($coverage['modules'] as $row) @if ($canManage) @endif @empty @endforelse
ModuleSuiteCreatedTest casesLast statusTests
{{ $row['name'] }} {{ $row['suite'] }} @if ($row['created'])✓ yes@else— no@endif {{ $row['case_count'] ?: '—' }} @if ($row['status']) @php $rr = $row['status'] === 'PASS' ? 'green' : ($row['status'] === 'FAIL' ? 'red' : 'yellow'); [$rb,$rf] = $rygColors[$rr] ?? ['#eef2f7','#334155']; @endphp {{ $row['status'] }} @else not run @endif {{ $row['tests'] ? ($row['passed'].'/'.$row['tests']) : '—' }}
@if (count($row['cases']))
@foreach ($row['cases'] as $c) @php $d = $c['status'] === 'PASS' ? 'p' : ($c['status'] === 'FAIL' ? 'f' : ($c['status'] === 'SKIP' ? 's' : '')); @endphp {{ $c['name'] }} @if ($canManage && ! empty($c['file'])) @endif @endforeach
@elseif ($row['created'])
No test cases detected in the suite file.
@else
No suite created yet — nothing to show.
@endif
No modules yet. Add the systems you're tracking in Automation → Test Suite.
{{-- Run history --}}

Run history

@forelse ($runs as $r) @if ($r->log_tail || $r->error_message) @endif @empty @endforelse
WhenScopeStatusPassedFailedSkippedDurationBy
{{ $r->created_at?->diffForHumans() }} {{ $r->scope === 'module' ? ($r->module_name ?: 'Module') : 'All suites' }} {{ ucfirst($r->status) }} {{ $r->passed }}{{ $r->failed }}{{ $r->skipped }} {{ $r->duration_seconds !== null ? $r->duration_seconds.'s' : '—' }} {{ $r->triggered_by }} @if ($r->log_tail || $r->error_message)@endif
{{ $r->error_message ? '['.$r->error_message.']'.PHP_EOL : '' }}{{ $r->log_tail }}
No runs yet. Configure the project and click “Run all”.