mirror of
https://github.com/infiniflow/ragflow.git
synced 2026-07-17 05:07:23 +08:00
56 lines
1.8 KiB
Go
56 lines
1.8 KiB
Go
package service
|
|
|
|
import (
|
|
"errors"
|
|
"testing"
|
|
|
|
"ragflow/internal/common"
|
|
)
|
|
|
|
func TestValidateTransitionAllowsExpectedEdges(t *testing.T) {
|
|
testCases := []struct {
|
|
from string
|
|
to string
|
|
}{
|
|
{from: common.CREATED, to: common.RUNNING},
|
|
{from: common.CREATED, to: common.STOPPED},
|
|
{from: common.RUNNING, to: common.STOPPING},
|
|
{from: common.RUNNING, to: common.COMPLETED},
|
|
{from: common.RUNNING, to: common.FAILED},
|
|
{from: common.STOPPING, to: common.STOPPED},
|
|
{from: common.FAILED, to: common.CREATED},
|
|
{from: common.STOPPED, to: common.CREATED},
|
|
}
|
|
|
|
for _, tc := range testCases {
|
|
if err := validateTransition(tc.from, tc.to); err != nil {
|
|
t.Fatalf("validateTransition(%q, %q) failed: %v", tc.from, tc.to, err)
|
|
}
|
|
}
|
|
}
|
|
|
|
func TestValidateTransitionRejectsInvalidEdge(t *testing.T) {
|
|
err := validateTransition(common.CREATED, common.COMPLETED)
|
|
if err == nil {
|
|
t.Fatal("expected invalid transition to be rejected")
|
|
}
|
|
var transitionErr *InvalidTaskTransitionError
|
|
if !errors.As(err, &transitionErr) {
|
|
t.Fatalf("expected InvalidTaskTransitionError, got %T", err)
|
|
}
|
|
if transitionErr.TaskID != "" || transitionErr.From != common.CREATED || transitionErr.To != common.COMPLETED {
|
|
t.Fatalf("unexpected transition error: %+v", transitionErr)
|
|
}
|
|
}
|
|
|
|
func TestTaskStatusConflictErrorSupportsErrorsAs(t *testing.T) {
|
|
err := &TaskStatusConflictError{TaskID: "task-1", ExpectedFrom: common.CREATED, AttemptedTo: common.RUNNING, ActualCurrent: common.STOPPING}
|
|
var conflictErr *TaskStatusConflictError
|
|
if !errors.As(err, &conflictErr) {
|
|
t.Fatalf("expected TaskStatusConflictError, got %T", err)
|
|
}
|
|
if conflictErr.TaskID != "task-1" || conflictErr.ExpectedFrom != common.CREATED || conflictErr.AttemptedTo != common.RUNNING || conflictErr.ActualCurrent != common.STOPPING {
|
|
t.Fatalf("unexpected conflict error: %+v", conflictErr)
|
|
}
|
|
}
|