All checks were successful
ci/woodpecker/push/my-first-workflow Pipeline was successful
优化踢人超时处理和僵尸连接清理,支持BOSS动作脚本并增加测试,修复事件匹配与战斗循环中的并发问题。
45 lines
915 B
Go
45 lines
915 B
Go
package model
|
|
|
|
import "testing"
|
|
|
|
type testHookAction struct {
|
|
Allow bool
|
|
Round int
|
|
}
|
|
|
|
func TestBossConfigRunHookActionScript(t *testing.T) {
|
|
boss := &BossConfig{
|
|
Script: `
|
|
function hookAction(hookaction) {
|
|
return hookaction.Allow && hookaction.Round >= 2;
|
|
}
|
|
`,
|
|
}
|
|
|
|
ok, err := boss.RunHookActionScript(testHookAction{Allow: true, Round: 2})
|
|
if err != nil {
|
|
t.Fatalf("RunHookActionScript returned error: %v", err)
|
|
}
|
|
if !ok {
|
|
t.Fatalf("RunHookActionScript = false, want true")
|
|
}
|
|
}
|
|
|
|
func TestBossConfigRunHookActionScriptEmptyReturnDefaultsTrue(t *testing.T) {
|
|
boss := &BossConfig{
|
|
Script: `
|
|
function hookAction(hookaction) {
|
|
var _ = hookaction;
|
|
}
|
|
`,
|
|
}
|
|
|
|
ok, err := boss.RunHookActionScript(testHookAction{Allow: false, Round: 1})
|
|
if err != nil {
|
|
t.Fatalf("RunHookActionScript returned error: %v", err)
|
|
}
|
|
if !ok {
|
|
t.Fatalf("RunHookActionScript = false, want true")
|
|
}
|
|
}
|