Files
bl/modules/config/model/boss_pet_test.go

88 lines
1.9 KiB
Go
Raw Normal View History

package model
import "testing"
func TestBossConfigRunHookActionScript(t *testing.T) {
boss := &BossConfig{
Script: `
function hookAction(hookaction) {
return hookaction.hookaction === true;
}
`,
}
ctx := &BossHookActionContext{HookAction: true}
ok, err := boss.RunHookActionScript(ctx)
if err != nil {
t.Fatalf("RunHookActionScript returned error: %v", err)
}
if !ok {
t.Fatalf("RunHookActionScript = false, want true")
}
}
func TestBossConfigRunHookActionScriptCallUseSkillFn(t *testing.T) {
boss := &BossConfig{
Script: `
function hookAction(hookaction) {
if (hookaction.round >= 2) {
useSkill(5001);
}
return true;
}
`,
}
ctx := &BossHookActionContext{
HookAction: true,
Round: 2,
Action: "auto",
}
ctx.UseSkillFn = func(skillID uint32) {
ctx.Action = "skill"
ctx.SkillID = skillID
}
ok, err := boss.RunHookActionScript(ctx)
if err != nil {
t.Fatalf("RunHookActionScript returned error: %v", err)
}
if !ok {
t.Fatalf("RunHookActionScript = false, want true")
}
if ctx.Action != "skill" || ctx.SkillID != 5001 {
t.Fatalf("useSkill not applied, got action=%q skill_id=%d", ctx.Action, ctx.SkillID)
}
}
func TestBossConfigRunHookActionScriptCallSwitchPetFn(t *testing.T) {
boss := &BossConfig{
Script: `
function hookAction(hookaction) {
switchPet(3);
return true;
}
`,
}
ctx := &BossHookActionContext{
HookAction: true,
Action: "auto",
}
ctx.SwitchPetFn = func(catchTime uint32) {
ctx.Action = "switch"
ctx.CatchTime = catchTime
}
ok, err := boss.RunHookActionScript(ctx)
if err != nil {
t.Fatalf("RunHookActionScript returned error: %v", err)
}
if !ok {
t.Fatalf("RunHookActionScript = false, want true")
}
if ctx.Action != "switch" || ctx.CatchTime != 3 {
t.Fatalf("switchPet not applied, got action=%q catch_time=%d", ctx.Action, ctx.CatchTime)
}
}