fix: разрешить timeout/failed → collecting (перезапуск сбора через /start и /retry)
All checks were successful
CI / test (push) Successful in 41s
CI / build-and-package (amd64, linux) (push) Successful in 38s
CI / build-and-package (amd64, windows) (push) Successful in 36s

This commit is contained in:
Hermes
2026-08-16 23:45:05 +05:00
parent 80c1097a72
commit a3c6b5f153
2 changed files with 8 additions and 5 deletions

View File

@@ -32,8 +32,8 @@ var validTransitions = map[Status][]Status{
StatusReady: {StatusRunning, StatusCancelled, StatusAborted, StatusClosed, StatusCollecting}, // правка готового StatusReady: {StatusRunning, StatusCancelled, StatusAborted, StatusClosed, StatusCollecting}, // правка готового
StatusRunning: {StatusSuccess, StatusFailed, StatusTimeout, StatusCancelled}, StatusRunning: {StatusSuccess, StatusFailed, StatusTimeout, StatusCancelled},
StatusSuccess: {StatusClosed}, StatusSuccess: {StatusClosed},
StatusFailed: {StatusReady, StatusClosed, StatusCancelled}, // retry StatusFailed: {StatusReady, StatusClosed, StatusCancelled, StatusCollecting}, // retry: перезапуск сбора
StatusTimeout: {StatusReady, StatusClosed, StatusCancelled}, // retry StatusTimeout: {StatusReady, StatusClosed, StatusCancelled, StatusCollecting}, // retry: перезапуск сбора
StatusCancelled: {StatusClosed}, StatusCancelled: {StatusClosed},
StatusAborted: {StatusClosed}, StatusAborted: {StatusClosed},
StatusClosed: {}, // терминальный StatusClosed: {}, // терминальный

View File

@@ -18,10 +18,13 @@ func TestIsValidTransition(t *testing.T) {
{StatusRunning, StatusTimeout, true}, {StatusRunning, StatusTimeout, true},
{StatusSuccess, StatusClosed, true}, {StatusSuccess, StatusClosed, true},
{StatusSuccess, StatusDraft, false}, {StatusSuccess, StatusDraft, false},
{StatusFailed, StatusReady, true}, // retry {StatusFailed, StatusReady, true}, // retry
{StatusFailed, StatusClosed, true}, {StatusFailed, StatusClosed, true},
{StatusFailed, StatusRunning, false}, {StatusFailed, StatusRunning, false},
{StatusTimeout, StatusReady, true}, // retry {StatusFailed, StatusCollecting, true}, // retry: перезапуск сбора
{StatusTimeout, StatusReady, true}, // retry
{StatusTimeout, StatusCollecting, true}, // retry: перезапуск сбора
{StatusTimeout, StatusRunning, false},
{StatusClosed, StatusDraft, false}, {StatusClosed, StatusDraft, false},
{StatusClosed, StatusRunning, false}, {StatusClosed, StatusRunning, false},
} }
@@ -46,4 +49,4 @@ func TestIsTerminal(t *testing.T) {
if IsTerminal(StatusRunning) { if IsTerminal(StatusRunning) {
t.Error("StatusRunning should NOT be terminal") t.Error("StatusRunning should NOT be terminal")
} }
} }