feat(capability/skills): 可复用工作流技能(Skill 模型 + Store + YAML Loader + Runner 展开 + 注册)
This commit is contained in:
1 parent
d947ec41a9
commit
915aa8a100
10 files changed
+1235
No files matched your search
@@ -0,0 +1,56 @@
|
||||
package skills
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"testing"
|
||||
|
||||
"git.yeij.top/AskaEth/Cyrene_v2/internal/capability/registry"
|
||||
"git.yeij.top/AskaEth/Cyrene_v2/pkg/plugins/sdk"
|
||||
)
|
||||
|
||||
func TestRegister_正常(t *testing.T) {
|
||||
t.Parallel()
|
||||
reg := registry.New()
|
||||
if err := Register(reg, makeSkill(t, "a"), makeSkill(t, "b")); err != nil {
|
||||
t.Fatalf("Register: %v", err)
|
||||
}
|
||||
cap, err := reg.Get("a")
|
||||
if err != nil {
|
||||
t.Fatalf("Get a: %v", err)
|
||||
}
|
||||
if cap.Kind != registry.KindSkill {
|
||||
t.Fatalf("Kind = %q, want %q", cap.Kind, registry.KindSkill)
|
||||
}
|
||||
sk, ok := cap.Value.(sdk.Skill)
|
||||
if !ok {
|
||||
t.Fatalf("Value is %T, want sdk.Skill", cap.Value)
|
||||
}
|
||||
if sk.Name() != "a" || sk.Description() != "desc a" {
|
||||
t.Fatalf("registered skill = %q/%q, want a/desc a", sk.Name(), sk.Description())
|
||||
}
|
||||
}
|
||||
|
||||
func TestRegister_NilRegistrar_异常(t *testing.T) {
|
||||
t.Parallel()
|
||||
if err := Register(nil, makeSkill(t, "a")); !errors.Is(err, ErrNilRegistrar) {
|
||||
t.Fatalf("Register(nil) err = %v, want ErrNilRegistrar", err)
|
||||
}
|
||||
}
|
||||
|
||||
func TestRegister_NilSkill_异常(t *testing.T) {
|
||||
t.Parallel()
|
||||
if err := Register(registry.New(), nil); !errors.Is(err, ErrInvalidSkill) {
|
||||
t.Fatalf("Register(nil skill) err = %v, want ErrInvalidSkill", err)
|
||||
}
|
||||
}
|
||||
|
||||
func TestRegister_Duplicate_异常(t *testing.T) {
|
||||
t.Parallel()
|
||||
reg := registry.New()
|
||||
if err := Register(reg, makeSkill(t, "review")); err != nil {
|
||||
t.Fatalf("first Register: %v", err)
|
||||
}
|
||||
if err := Register(reg, makeSkill(t, "review")); !errors.Is(err, registry.ErrDuplicate) {
|
||||
t.Fatalf("second Register err = %v, want registry.ErrDuplicate", err)
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user