feat(07-02): register accounts and extend the user payload
Registration follows activate_mode and hides a disabled or throttled cause in production. Fonoteka adds organisation fields through GetApiArrayEvent. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
48
classes/events_test.go
Normal file
48
classes/events_test.go
Normal file
@@ -0,0 +1,48 @@
|
||||
package classes
|
||||
|
||||
import (
|
||||
"context"
|
||||
"testing"
|
||||
|
||||
"git.golem15.com/golem15/fonoteka/plugins/golem15/user/models"
|
||||
"git.golem15.com/golem15/summercms/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)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user