Files
Assistant/modules/work/application/worker_test.go
m dd7fd2cd68
CI / test (push) Successful in 26s
CI / test (pull_request) Successful in 24s
fix: disable agent dry-run without executor
2026-08-22 16:43:32 +03:00

47 lines
1.5 KiB
Go

package application
import (
"context"
"testing"
"time"
"git.cin.su/m/Assistant/contracts/work"
)
type recoveryOnlyStore struct {
recovered int64
claimed bool
}
func (s *recoveryOnlyStore) RecoverStaleClaims(context.Context, int64, int64) (int64, error) {
return s.recovered, nil
}
func (s *recoveryOnlyStore) ClaimNextDispatch(context.Context, string, int64) (work.AgentDispatchQueueItem, error) {
s.claimed = true
return work.AgentDispatchQueueItem{}, nil
}
func (s *recoveryOnlyStore) LoadDispatchIntent(context.Context, string) (work.AgentDispatchIntent, error) {
return work.AgentDispatchIntent{}, nil
}
func (s *recoveryOnlyStore) CompleteDispatch(context.Context, string, string, work.AgentDispatchQueueState, int64) error {
return nil
}
func (s *recoveryOnlyStore) SaveDispatchIntent(context.Context, work.AgentDispatchIntent) error {
return nil
}
func (s *recoveryOnlyStore) SaveAgentLease(context.Context, work.AgentLease) error { return nil }
func (s *recoveryOnlyStore) AcceptAgentCallback(context.Context, work.AgentCallback) error {
return nil
}
func TestRecoverOnlyWorkerCycleNeverClaimsDispatch(t *testing.T) {
store := &recoveryOnlyStore{recovered: 2}
result, err := RecoverOnlyWorkerCycle(context.Background(), store, time.UnixMilli(1_700_000_000_000), time.Minute)
if err != nil {
t.Fatal(err)
}
if result.RecoveredClaims != 2 || !result.Idle || store.claimed {
t.Fatalf("unexpected recovery-only result: %+v claimed=%t", result, store.claimed)
}
}