fix: combine resourceowner query in reduce function for user grant (#7383)

* fix: projection reduce correction with unit tests

* fix: remove eventcout variable as not used anymore

* fix: add errors if resoureowner is not found in user grants reduce
This commit is contained in:
Stefan Benz
2024-03-08 08:52:59 +01:00
committed by GitHub
parent 213c425806
commit 6df4b1b2c2
7 changed files with 551 additions and 16 deletions

View File

@@ -2,6 +2,7 @@ package projection
import (
"context"
"errors"
"testing"
"golang.org/x/text/language"
@@ -88,6 +89,64 @@ func TestProjectGrantMemberProjection_reduces(t *testing.T) {
},
},
},
{
name: "project GrantMemberAddedType, error user not found",
args: args{
event: getEvent(
testEvent(
project.GrantMemberAddedType,
project.AggregateType,
[]byte(`{
"userId": "user-id",
"roles": ["role"],
"grantId": "grant-id"
}`),
), project.GrantMemberAddedEventMapper),
},
reduce: (&projectGrantMemberProjection{
es: newMockEventStore().appendFilterResponse([]eventstore.Event{}),
}).reduceAdded,
want: wantReduce{
err: func(err error) bool {
return errors.Is(err, zerrors.ThrowNotFound(nil, "PROJ-cuvy6nu1tq", "Errors.NotFound"))
},
},
},
{
name: "project GrantMemberAddedType, error grant not found",
args: args{
event: getEvent(
testEvent(
project.GrantMemberAddedType,
project.AggregateType,
[]byte(`{
"userId": "user-id",
"roles": ["role"],
"grantId": "grant-id"
}`),
), project.GrantMemberAddedEventMapper),
},
reduce: (&projectGrantMemberProjection{
es: newMockEventStore().appendFilterResponse([]eventstore.Event{
user.NewHumanAddedEvent(context.Background(),
&user.NewAggregate("user-id", "org1").Aggregate,
"username1",
"firstname1",
"lastname1",
"nickname1",
"displayname1",
language.German,
domain.GenderMale,
"email1",
true,
)}),
}).reduceAdded,
want: wantReduce{
err: func(err error) bool {
return errors.Is(err, zerrors.ThrowNotFound(nil, "PROJ-i178hq18k4", "Errors.NotFound"))
},
},
},
{
name: "project GrantMemberChangedType",
args: args{