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}, // правка готового
StatusRunning: {StatusSuccess, StatusFailed, StatusTimeout, StatusCancelled},
StatusSuccess: {StatusClosed},
StatusFailed: {StatusReady, StatusClosed, StatusCancelled}, // retry
StatusTimeout: {StatusReady, StatusClosed, StatusCancelled}, // retry
StatusFailed: {StatusReady, StatusClosed, StatusCancelled, StatusCollecting}, // retry: перезапуск сбора
StatusTimeout: {StatusReady, StatusClosed, StatusCancelled, StatusCollecting}, // retry: перезапуск сбора
StatusCancelled: {StatusClosed},
StatusAborted: {StatusClosed},
StatusClosed: {}, // терминальный

View File

@@ -18,10 +18,13 @@ func TestIsValidTransition(t *testing.T) {
{StatusRunning, StatusTimeout, true},
{StatusSuccess, StatusClosed, true},
{StatusSuccess, StatusDraft, false},
{StatusFailed, StatusReady, true}, // retry
{StatusFailed, StatusReady, true}, // retry
{StatusFailed, StatusClosed, true},
{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, StatusRunning, false},
}