Files
sm-user-plugin/classes/events_test.go
Jakub Zych 02ba1f0666 refactor: rename module to git.golem15.com/golem15/sm-user-plugin
Prefix replacement of the old application-nested module path in go.mod
and every import. No identifier, string, table, migration ID, config key
or comment changes.
2026-10-02 10:56:06 +02:00

49 lines
1.3 KiB
Go

package classes
import (
"context"
"testing"
"git.golem15.com/golem15/sm-user-plugin/models"
"git.golem15.com/golem15/summercms/modules/festival"
)
func TestGetApiArrayEventMerge(t *testing.T) {
bus := festival.New()
bus.ListenPriority[*GetApiArrayEvent]("first", 0, func(_ context.Context, e *GetApiArrayEvent) error {
e.Collected()["organisation_id"] = 1
e.Collected()["kept"] = "a"
return nil
})
bus.ListenPriority[*GetApiArrayEvent]("second", 0, func(_ context.Context, e *GetApiArrayEvent) error {
e.Collected()["organisation_id"] = 2
return nil
})
got, err := bus.Collect(context.Background(), &GetApiArrayEvent{User: &models.User{}})
if err != nil {
t.Fatal(err)
}
if got["organisation_id"] != 2 {
t.Fatalf("later listener lost: %#v", got["organisation_id"])
}
if got["kept"] != "a" {
t.Fatalf("non-colliding key dropped: %#v", got)
}
}
func TestRegisterEventFires(t *testing.T) {
bus := festival.New()
var seen *models.User
bus.Listen[*RegisterEvent]("golem15.user", func(_ context.Context, e *RegisterEvent) error {
seen = e.User
return nil
})
user := &models.User{ID: 4, Email: "evt@example.test"}
if err := bus.Fire(context.Background(), &RegisterEvent{User: user}); err != nil {
t.Fatal(err)
}
if seen == nil || seen.Email != user.Email {
t.Fatalf("event user = %#v", seen)
}
}