From 965e3fa621f69787ffd1611b3711fe3e0819d148 Mon Sep 17 00:00:00 2001 From: Wim Van Laer Date: Mon, 16 Mar 2026 13:12:21 +0100 Subject: [PATCH] fix: check whether org exists before creating user (#11647) # Which Problems Are Solved It was possible to create a user with an imaginary org. # How the Problems Are Solved Check whether org exists before creating the user. # Additional Changes # Additional Context - Closes #11532 --- .../user/v2/integration_test/user_test.go | 49 +++++ internal/command/user_machine.go | 4 + internal/command/user_machine_test.go | 152 ++++++++++++---- internal/command/user_v2_human.go | 22 ++- internal/command/user_v2_human_test.go | 167 ++++++++++++++++++ 5 files changed, 352 insertions(+), 42 deletions(-) diff --git a/internal/api/grpc/user/v2/integration_test/user_test.go b/internal/api/grpc/user/v2/integration_test/user_test.go index c4b566cb4..2f059ecd0 100644 --- a/internal/api/grpc/user/v2/integration_test/user_test.go +++ b/internal/api/grpc/user/v2/integration_test/user_test.go @@ -3452,6 +3452,34 @@ func TestServer_CreateUser(t *testing.T) { } }, }, + { + name: "org does not exist human, using IAM owner, error", + testCase: func(runId string) testCase { + username := fmt.Sprintf("donald.duck+%s", runId) + email := username + "@example.com" + return testCase{ + args: args{ + IamCTX, + &user.CreateUserRequest{ + OrganizationId: "does not exist", + Username: &username, + UserType: &user.CreateUserRequest_Human_{ + Human: &user.CreateUserRequest_Human{ + Profile: &user.SetHumanProfile{ + GivenName: "Donald", + FamilyName: "Duck", + }, + Email: &user.SetHumanEmail{ + Email: email, + }, + }, + }, + }, + }, + wantErr: true, + } + }, + }, { name: "org does not exist machine, error", testCase: func(runId string) testCase { @@ -3473,6 +3501,27 @@ func TestServer_CreateUser(t *testing.T) { } }, }, + { + name: "org does not exist machine, using IAM owner, error", + testCase: func(runId string) testCase { + username := fmt.Sprintf("donald.duck+%s", runId) + return testCase{ + args: args{ + IamCTX, + &user.CreateUserRequest{ + OrganizationId: "does not exist", + Username: &username, + UserType: &user.CreateUserRequest_Machine_{ + Machine: &user.CreateUserRequest_Machine{ + Name: integration.Username(), + }, + }, + }, + }, + wantErr: true, + } + }, + }, } for i, tt := range tests { t.Run(tt.name, func(t *testing.T) { diff --git a/internal/command/user_machine.go b/internal/command/user_machine.go index a20e5dbd3..f39beca63 100644 --- a/internal/command/user_machine.go +++ b/internal/command/user_machine.go @@ -114,6 +114,10 @@ func (c *Commands) AddMachine(ctx context.Context, machine *Machine, state *doma return nil, err } } + err = c.checkOrgExists(ctx, machine.ResourceOwner) + if err != nil { + return nil, err + } cmds, err := preparation.PrepareCommands(ctx, c.eventstore.Filter, AddMachineCommand(agg, machine)) if err != nil { return nil, err diff --git a/internal/command/user_machine_test.go b/internal/command/user_machine_test.go index c12360a6f..3c9084531 100644 --- a/internal/command/user_machine_test.go +++ b/internal/command/user_machine_test.go @@ -2,6 +2,7 @@ package command import ( "context" + "errors" "testing" "github.com/stretchr/testify/assert" @@ -18,7 +19,7 @@ import ( func TestCommandSide_AddMachine(t *testing.T) { type fields struct { - eventstore *eventstore.Eventstore + eventstore func(t *testing.T) *eventstore.Eventstore idGenerator id.Generator } type args struct { @@ -32,6 +33,9 @@ func TestCommandSide_AddMachine(t *testing.T) { want *domain.ObjectDetails err func(error) bool } + + orgAgg := org.NewAggregate("org1") + tests := []struct { name string fields fields @@ -41,8 +45,12 @@ func TestCommandSide_AddMachine(t *testing.T) { { name: "user invalid, invalid argument error name", fields: fields{ - eventstore: eventstoreExpect( - t, + eventstore: expectEventstore( + expectFilter( + eventFromEventPusher( + org.NewOrgAddedEvent(context.Background(), &orgAgg.Aggregate, "org1"), + ), + ), ), idGenerator: id_mock.NewIDGeneratorExpectIDs(t, "user1"), }, @@ -62,8 +70,12 @@ func TestCommandSide_AddMachine(t *testing.T) { { name: "user invalid, invalid argument error username", fields: fields{ - eventstore: eventstoreExpect( - t, + eventstore: expectEventstore( + expectFilter( + eventFromEventPusher( + org.NewOrgAddedEvent(context.Background(), &orgAgg.Aggregate, "org1"), + ), + ), ), idGenerator: id_mock.NewIDGeneratorExpectIDs(t, "user1"), }, @@ -83,8 +95,12 @@ func TestCommandSide_AddMachine(t *testing.T) { { name: "org policy not found, precondition error", fields: fields{ - eventstore: eventstoreExpect( - t, + eventstore: expectEventstore( + expectFilter( + eventFromEventPusher( + org.NewOrgAddedEvent(context.Background(), &orgAgg.Aggregate, "org1"), + ), + ), expectFilter(), expectFilter(), expectFilter(), @@ -108,8 +124,12 @@ func TestCommandSide_AddMachine(t *testing.T) { { name: "add machine with invalid metadata key, error", fields: fields{ - eventstore: eventstoreExpect( - t, + eventstore: expectEventstore( + expectFilter( + eventFromEventPusher( + org.NewOrgAddedEvent(context.Background(), &orgAgg.Aggregate, "org1"), + ), + ), ), idGenerator: id_mock.NewIDGeneratorExpectIDs(t, "user1"), }, @@ -137,8 +157,12 @@ func TestCommandSide_AddMachine(t *testing.T) { { name: "add machine with invalid metadata value, error", fields: fields{ - eventstore: eventstoreExpect( - t, + eventstore: expectEventstore( + expectFilter( + eventFromEventPusher( + org.NewOrgAddedEvent(context.Background(), &orgAgg.Aggregate, "org1"), + ), + ), ), idGenerator: id_mock.NewIDGeneratorExpectIDs(t, "user1"), }, @@ -166,8 +190,12 @@ func TestCommandSide_AddMachine(t *testing.T) { { name: "add machine, ok", fields: fields{ - eventstore: eventstoreExpect( - t, + eventstore: expectEventstore( + expectFilter( + eventFromEventPusher( + org.NewOrgAddedEvent(context.Background(), &orgAgg.Aggregate, "org1"), + ), + ), expectFilter(), expectFilter( eventFromEventPusher( @@ -224,8 +252,12 @@ func TestCommandSide_AddMachine(t *testing.T) { { name: "add machine, orgScopedUsername, ok", fields: fields{ - eventstore: eventstoreExpect( - t, + eventstore: expectEventstore( + expectFilter( + eventFromEventPusher( + org.NewOrgAddedEvent(context.Background(), &orgAgg.Aggregate, "org1"), + ), + ), expectFilter(), expectFilter( eventFromEventPusher( @@ -271,8 +303,12 @@ func TestCommandSide_AddMachine(t *testing.T) { { name: "add machine - custom id, ok", fields: fields{ - eventstore: eventstoreExpect( - t, + eventstore: expectEventstore( + expectFilter( + eventFromEventPusher( + org.NewOrgAddedEvent(context.Background(), &orgAgg.Aggregate, "org1"), + ), + ), expectFilter(), expectFilter( eventFromEventPusher( @@ -319,8 +355,12 @@ func TestCommandSide_AddMachine(t *testing.T) { name: "with username fallback to given username", fields: fields{ idGenerator: id_mock.NewIDGeneratorExpectIDs(t, "aggregateID"), - eventstore: eventstoreExpect( - t, + eventstore: expectEventstore( + expectFilter( + eventFromEventPusher( + org.NewOrgAddedEvent(context.Background(), &orgAgg.Aggregate, "org1"), + ), + ), expectFilter(), expectFilter( eventFromEventPusher( @@ -370,8 +410,12 @@ func TestCommandSide_AddMachine(t *testing.T) { name: "with username fallback to generated id", fields: fields{ idGenerator: id_mock.NewIDGeneratorExpectIDs(t, "aggregateID"), - eventstore: eventstoreExpect( - t, + eventstore: expectEventstore( + expectFilter( + eventFromEventPusher( + org.NewOrgAddedEvent(context.Background(), &orgAgg.Aggregate, "org1"), + ), + ), expectFilter(), expectFilter( eventFromEventPusher( @@ -419,8 +463,12 @@ func TestCommandSide_AddMachine(t *testing.T) { { name: "with username fallback to given id", fields: fields{ - eventstore: eventstoreExpect( - t, + eventstore: expectEventstore( + expectFilter( + eventFromEventPusher( + org.NewOrgAddedEvent(context.Background(), &orgAgg.Aggregate, "org1"), + ), + ), expectFilter(), expectFilter( eventFromEventPusher( @@ -469,8 +517,12 @@ func TestCommandSide_AddMachine(t *testing.T) { { name: "with succeeding permission check, ok", fields: fields{ - eventstore: eventstoreExpect( - t, + eventstore: expectEventstore( + expectFilter( + eventFromEventPusher( + org.NewOrgAddedEvent(context.Background(), &orgAgg.Aggregate, "org1"), + ), + ), expectFilter(), expectFilter( eventFromEventPusher( @@ -519,9 +571,7 @@ func TestCommandSide_AddMachine(t *testing.T) { { name: "with failing permission check, error", fields: fields{ - eventstore: eventstoreExpect( - t, - ), + eventstore: expectEventstore(), idGenerator: id_mock.NewIDGeneratorExpectIDs(t, "user1"), }, args: args{ @@ -545,8 +595,12 @@ func TestCommandSide_AddMachine(t *testing.T) { { name: "add machine, ok + deactive state", fields: fields{ - eventstore: eventstoreExpect( - t, + eventstore: expectEventstore( + expectFilter( + eventFromEventPusher( + org.NewOrgAddedEvent(context.Background(), &orgAgg.Aggregate, "org1"), + ), + ), expectFilter(), expectFilter( eventFromEventPusher( @@ -599,8 +653,12 @@ func TestCommandSide_AddMachine(t *testing.T) { { name: "add machine, ok + locked state", fields: fields{ - eventstore: eventstoreExpect( - t, + eventstore: expectEventstore( + expectFilter( + eventFromEventPusher( + org.NewOrgAddedEvent(context.Background(), &orgAgg.Aggregate, "org1"), + ), + ), expectFilter(), expectFilter( eventFromEventPusher( @@ -650,11 +708,39 @@ func TestCommandSide_AddMachine(t *testing.T) { }, }, }, + { + name: "org not found, precondition error", + fields: fields{ + idGenerator: id_mock.NewIDGeneratorExpectIDs(t, "user1"), + eventstore: expectEventstore( + expectFilter(), + ), + }, + args: args{ + ctx: context.Background(), + machine: &Machine{ + ObjectRoot: models.ObjectRoot{ + ResourceOwner: "non-existing-org", + }, + Description: "description", + Name: "name", + Username: "username", + }, + check: func(resourceOwner, aggregateID string) error { + return nil + }, + }, + res: res{ + err: func(err error) bool { + return errors.Is(err, zerrors.ThrowPreconditionFailed(nil, "COMMAND-QXPGs", "Errors.Org.NotFound")) + }, + }, + }, } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { r := &Commands{ - eventstore: tt.fields.eventstore, + eventstore: tt.fields.eventstore(t), idGenerator: tt.fields.idGenerator, checkPermission: newMockPermissionCheckAllowed(), } diff --git a/internal/command/user_v2_human.go b/internal/command/user_v2_human.go index de4386d4c..6969bad9f 100644 --- a/internal/command/user_v2_human.go +++ b/internal/command/user_v2_human.go @@ -118,14 +118,14 @@ func (h *ChangeHuman) Changed() bool { return false } -func (c *Commands) AddUserHuman(ctx context.Context, resourceOwner string, human *AddHuman, allowInitMail bool, alg crypto.EncryptionAlgorithm) (err error) { - if resourceOwner == "" { +func (c *Commands) AddUserHuman(ctx context.Context, organizationID string, human *AddHuman, allowInitMail bool, alg crypto.EncryptionAlgorithm) (err error) { + if organizationID == "" { return zerrors.ThrowInvalidArgument(nil, "COMMA-095xh8fll1", "Errors.Internal") } if human.Details == nil { human.Details = &domain.ObjectDetails{} } - human.Details.ResourceOwner = resourceOwner + human.Details.ResourceOwner = organizationID if err := human.Validate(c.userPasswordHasher); err != nil { return err } @@ -136,12 +136,16 @@ func (c *Commands) AddUserHuman(ctx context.Context, resourceOwner string, human return err } } - // check for permission to create user on resourceOwner + // check for permission to create user on organizationID if !human.Register { - if err := c.checkPermissionUpdateUser(ctx, resourceOwner, human.ID, true); err != nil { + if err := c.checkPermissionUpdateUser(ctx, organizationID, human.ID, true); err != nil { return err } } + err = c.checkOrgExists(ctx, organizationID) + if err != nil { + return err + } // only check if user is already existing existingHuman, err := c.userExistsWriteModel( ctx, @@ -154,18 +158,18 @@ func (c *Commands) AddUserHuman(ctx context.Context, resourceOwner string, human return zerrors.ThrowPreconditionFailed(nil, "COMMAND-7yiox1isql", "Errors.User.AlreadyExisting") } // add resourceowner for the events with the aggregate - existingHuman.ResourceOwner = resourceOwner + existingHuman.ResourceOwner = organizationID - domainPolicy, err := c.domainPolicyWriteModel(ctx, resourceOwner) + domainPolicy, err := c.domainPolicyWriteModel(ctx, organizationID) if err != nil { return err } - if err = c.userValidateDomain(ctx, resourceOwner, human.Username, domainPolicy.UserLoginMustBeDomain); err != nil { + if err = c.userValidateDomain(ctx, organizationID, human.Username, domainPolicy.UserLoginMustBeDomain); err != nil { return err } - organizationScopedUsername, err := c.checkOrganizationScopedUsernames(ctx, resourceOwner) + organizationScopedUsername, err := c.checkOrganizationScopedUsernames(ctx, organizationID) if err != nil { return err } diff --git a/internal/command/user_v2_human_test.go b/internal/command/user_v2_human_test.go index 4aa23cf2f..2ca15abb3 100644 --- a/internal/command/user_v2_human_test.go +++ b/internal/command/user_v2_human_test.go @@ -127,6 +127,11 @@ func TestCommandSide_AddUserHuman(t *testing.T) { name: "with id, already exists, precondition error", fields: fields{ eventstore: expectEventstore( + expectFilter( + eventFromEventPusher( + org.NewOrgAddedEvent(context.Background(), &orgAgg.Aggregate, "org1"), + ), + ), expectFilter( eventFromEventPusher( newAddHumanEvent("$plain$x$password", true, true, "", language.English), @@ -162,6 +167,11 @@ func TestCommandSide_AddUserHuman(t *testing.T) { fields: fields{ idGenerator: id_mock.NewIDGeneratorExpectIDs(t, "user1"), eventstore: expectEventstore( + expectFilter( + eventFromEventPusher( + org.NewOrgAddedEvent(context.Background(), &orgAgg.Aggregate, "org1"), + ), + ), expectFilter(), expectFilter(), expectFilter(), @@ -194,6 +204,11 @@ func TestCommandSide_AddUserHuman(t *testing.T) { fields: fields{ idGenerator: id_mock.NewIDGeneratorExpectIDs(t, "user1"), eventstore: expectEventstore( + expectFilter( + eventFromEventPusher( + org.NewOrgAddedEvent(context.Background(), &orgAgg.Aggregate, "org1"), + ), + ), expectFilter(), expectFilter( eventFromEventPusher( @@ -234,10 +249,47 @@ func TestCommandSide_AddUserHuman(t *testing.T) { }, }, }, + { + name: "org not found, precondition error", + fields: fields{ + idGenerator: id_mock.NewIDGeneratorExpectIDs(t, "user1"), + eventstore: expectEventstore( + expectFilter(), + ), + checkPermission: newMockPermissionCheckAllowed(), + loginPaths: expectLoginPathsNoCall, + }, + args: args{ + ctx: context.Background(), + orgID: "non-existing-org", + human: &AddHuman{ + Username: "username", + FirstName: "firstname", + LastName: "lastname", + Password: "pass", + Email: Email{ + Address: "email@test.ch", + Verified: true, + }, + PreferredLanguage: language.English, + }, + allowInitMail: true, + }, + res: res{ + err: func(err error) bool { + return errors.Is(err, zerrors.ThrowPreconditionFailed(nil, "COMMAND-QXPGs", "Errors.Org.NotFound")) + }, + }, + }, { name: "register human (with initial code), ok", fields: fields{ eventstore: expectEventstore( + expectFilter( + eventFromEventPusher( + org.NewOrgAddedEvent(context.Background(), &orgAgg.Aggregate, "org1"), + ), + ), expectFilter(), expectFilter( eventFromEventPusher( @@ -343,6 +395,11 @@ func TestCommandSide_AddUserHuman(t *testing.T) { name: "add human (email not verified, no password), ok (init code)", fields: fields{ eventstore: expectEventstore( + expectFilter( + eventFromEventPusher( + org.NewOrgAddedEvent(context.Background(), &orgAgg.Aggregate, "org1"), + ), + ), expectFilter(), expectFilter( eventFromEventPusher( @@ -415,6 +472,11 @@ func TestCommandSide_AddUserHuman(t *testing.T) { name: "add human (email not verified, with password), ok (init code)", fields: fields{ eventstore: expectEventstore( + expectFilter( + eventFromEventPusher( + org.NewOrgAddedEvent(context.Background(), &orgAgg.Aggregate, "org1"), + ), + ), expectFilter(), expectFilter( eventFromEventPusher( @@ -488,6 +550,11 @@ func TestCommandSide_AddUserHuman(t *testing.T) { name: "add human (email not verified, no password, no allowInitMail), ok (email verification with passwordInit)", fields: fields{ eventstore: expectEventstore( + expectFilter( + eventFromEventPusher( + org.NewOrgAddedEvent(context.Background(), &orgAgg.Aggregate, "org1"), + ), + ), expectFilter(), expectFilter( eventFromEventPusher( @@ -549,6 +616,11 @@ func TestCommandSide_AddUserHuman(t *testing.T) { name: "add human (with password and email code custom template), ok", fields: fields{ eventstore: expectEventstore( + expectFilter( + eventFromEventPusher( + org.NewOrgAddedEvent(context.Background(), &orgAgg.Aggregate, "org1"), + ), + ), expectFilter(), expectFilter( eventFromEventPusher( @@ -625,6 +697,11 @@ func TestCommandSide_AddUserHuman(t *testing.T) { name: "add human (with password and return email code), ok", fields: fields{ eventstore: expectEventstore( + expectFilter( + eventFromEventPusher( + org.NewOrgAddedEvent(context.Background(), &orgAgg.Aggregate, "org1"), + ), + ), expectFilter(), expectFilter( eventFromEventPusher( @@ -702,6 +779,11 @@ func TestCommandSide_AddUserHuman(t *testing.T) { name: "add human email verified and password, ok", fields: fields{ eventstore: expectEventstore( + expectFilter( + eventFromEventPusher( + org.NewOrgAddedEvent(context.Background(), &orgAgg.Aggregate, "org1"), + ), + ), expectFilter(), expectFilter( eventFromEventPusher( @@ -768,6 +850,11 @@ func TestCommandSide_AddUserHuman(t *testing.T) { name: "add human email verified, trim spaces, ok", fields: fields{ eventstore: expectEventstore( + expectFilter( + eventFromEventPusher( + org.NewOrgAddedEvent(context.Background(), &orgAgg.Aggregate, "org1"), + ), + ), expectFilter(), expectFilter( eventFromEventPusher( @@ -834,6 +921,11 @@ func TestCommandSide_AddUserHuman(t *testing.T) { name: "add human, email verified, userLoginMustBeDomain false, ok", fields: fields{ eventstore: expectEventstore( + expectFilter( + eventFromEventPusher( + org.NewOrgAddedEvent(context.Background(), &orgAgg.Aggregate, "org1"), + ), + ), expectFilter(), expectFilter( eventFromEventPusher( @@ -900,6 +992,11 @@ func TestCommandSide_AddUserHuman(t *testing.T) { name: "add human claimed domain, userLoginMustBeDomain false, error", fields: fields{ eventstore: expectEventstore( + expectFilter( + eventFromEventPusher( + org.NewOrgAddedEvent(context.Background(), &orgAgg.Aggregate, "org1"), + ), + ), expectFilter(), expectFilter( eventFromEventPusher( @@ -954,6 +1051,11 @@ func TestCommandSide_AddUserHuman(t *testing.T) { name: "add human domain, userLoginMustBeDomain false, ok", fields: fields{ eventstore: expectEventstore( + expectFilter( + eventFromEventPusher( + org.NewOrgAddedEvent(context.Background(), &orgAgg.Aggregate, "org1"), + ), + ), expectFilter(), expectFilter( eventFromEventPusher( @@ -1044,6 +1146,11 @@ func TestCommandSide_AddUserHuman(t *testing.T) { name: "add human (with phone), ok", fields: fields{ eventstore: expectEventstore( + expectFilter( + eventFromEventPusher( + org.NewOrgAddedEvent(context.Background(), &orgAgg.Aggregate, "org1"), + ), + ), expectFilter(), expectFilter( eventFromEventPusher( @@ -1156,6 +1263,11 @@ func TestCommandSide_AddUserHuman(t *testing.T) { name: "add human (with phone), ok (external)", fields: fields{ eventstore: expectEventstore( + expectFilter( + eventFromEventPusher( + org.NewOrgAddedEvent(context.Background(), &orgAgg.Aggregate, "org1"), + ), + ), expectFilter(), expectFilter( eventFromEventPusher( @@ -1263,6 +1375,11 @@ func TestCommandSide_AddUserHuman(t *testing.T) { name: "add human (with verified phone), ok", fields: fields{ eventstore: expectEventstore( + expectFilter( + eventFromEventPusher( + org.NewOrgAddedEvent(context.Background(), &orgAgg.Aggregate, "org1"), + ), + ), expectFilter(), expectFilter( eventFromEventPusher( @@ -1331,6 +1448,11 @@ func TestCommandSide_AddUserHuman(t *testing.T) { name: "add human (with phone return code), ok", fields: fields{ eventstore: expectEventstore( + expectFilter( + eventFromEventPusher( + org.NewOrgAddedEvent(context.Background(), &orgAgg.Aggregate, "org1"), + ), + ), expectFilter(), expectFilter( eventFromEventPusher( @@ -1444,6 +1566,11 @@ func TestCommandSide_AddUserHuman(t *testing.T) { name: "add human with metadata, ok", fields: fields{ eventstore: expectEventstore( + expectFilter( + eventFromEventPusher( + org.NewOrgAddedEvent(context.Background(), &orgAgg.Aggregate, "org1"), + ), + ), expectFilter(), expectFilter( eventFromEventPusher( @@ -1516,6 +1643,11 @@ func TestCommandSide_AddUserHuman(t *testing.T) { name: "register human with idp, unverified email, allow init mail, ok (verify mail)", fields: fields{ eventstore: expectEventstore( + expectFilter( + eventFromEventPusher( + org.NewOrgAddedEvent(context.Background(), &orgAgg.Aggregate, "org1"), + ), + ), expectFilter(), expectFilter( eventFromEventPusher( @@ -1607,6 +1739,11 @@ func TestCommandSide_AddUserHuman(t *testing.T) { name: "register human with idp, verified email, ok", fields: fields{ eventstore: expectEventstore( + expectFilter( + eventFromEventPusher( + org.NewOrgAddedEvent(context.Background(), &orgAgg.Aggregate, "org1"), + ), + ), expectFilter(), expectFilter( eventFromEventPusher( @@ -1689,6 +1826,11 @@ func TestCommandSide_AddUserHuman(t *testing.T) { name: "register human with TOTPSecret, ok", fields: fields{ eventstore: expectEventstore( + expectFilter( + eventFromEventPusher( + org.NewOrgAddedEvent(context.Background(), &orgAgg.Aggregate, "org1"), + ), + ), expectFilter(), expectFilter( eventFromEventPusher( @@ -1774,6 +1916,11 @@ func TestCommandSide_AddUserHuman(t *testing.T) { name: "register human with TOTPSecret, ok", fields: fields{ eventstore: expectEventstore( + expectFilter( + eventFromEventPusher( + org.NewOrgAddedEvent(context.Background(), &orgAgg.Aggregate, "org1"), + ), + ), expectFilter(), expectFilter( eventFromEventPusher( @@ -1859,6 +2006,11 @@ func TestCommandSide_AddUserHuman(t *testing.T) { name: "register human (validate domain), already verified", fields: fields{ eventstore: expectEventstore( + expectFilter( + eventFromEventPusher( + org.NewOrgAddedEvent(context.Background(), &orgAgg.Aggregate, "org1"), + ), + ), expectFilter(), expectFilter( eventFromEventPusher( @@ -1913,6 +2065,11 @@ func TestCommandSide_AddUserHuman(t *testing.T) { name: "register human (validate domain), orgScopedUsername, ok", fields: fields{ eventstore: expectEventstore( + expectFilter( + eventFromEventPusher( + org.NewOrgAddedEvent(context.Background(), &orgAgg.Aggregate, "org1"), + ), + ), expectFilter(), expectFilter( eventFromEventPusher( @@ -1997,6 +2154,11 @@ func TestCommandSide_AddUserHuman(t *testing.T) { name: "register human (validate domain, domain removed), ok", fields: fields{ eventstore: expectEventstore( + expectFilter( + eventFromEventPusher( + org.NewOrgAddedEvent(context.Background(), &orgAgg.Aggregate, "org1"), + ), + ), expectFilter(), expectFilter( eventFromEventPusher( @@ -2088,6 +2250,11 @@ func TestCommandSide_AddUserHuman(t *testing.T) { name: "register human (validate domain, org removed), ok", fields: fields{ eventstore: expectEventstore( + expectFilter( + eventFromEventPusher( + org.NewOrgAddedEvent(context.Background(), &orgAgg.Aggregate, "org1"), + ), + ), expectFilter(), expectFilter( eventFromEventPusher(