fix: case changes on org domain (#9196)

# Which Problems Are Solved

Organization name change results in domain events even if the domain
itself doesn't change.

# How the Problems Are Solved

Check if the domain itself really changes, and if not, don't create the
events.

# Additional Changes

Unittest for this specific case.

# Additional Context

None

(cherry picked from commit 69372e5209)
This commit is contained in:
Stefan Benz
2025-01-16 16:05:55 +01:00
committed by Livio Spring
parent 0c0babf010
commit 3159e38842
2 changed files with 52 additions and 0 deletions

View File

@@ -334,6 +334,10 @@ func (c *Commands) changeDefaultDomain(ctx context.Context, orgID, newName strin
if err != nil {
return nil, err
}
// rename of organization resulting in no change in the domain
if newDefaultDomain == defaultDomain {
return nil, nil
}
events := []eventstore.Command{
org.NewDomainAddedEvent(ctx, orgAgg, newDefaultDomain),
org.NewDomainVerifiedEvent(ctx, orgAgg, newDefaultDomain),

View File

@@ -702,6 +702,54 @@ func TestCommandSide_ChangeOrg(t *testing.T) {
},
res: res{},
},
{
name: "change org name case verified, with primary",
fields: fields{
eventstore: eventstoreExpect(
t,
expectFilter(
eventFromEventPusher(
org.NewOrgAddedEvent(context.Background(),
&org.NewAggregate("org1").Aggregate,
"org"),
),
),
expectFilter(
eventFromEventPusher(
org.NewOrgAddedEvent(context.Background(),
&org.NewAggregate("org1").Aggregate,
"org"),
),
eventFromEventPusher(
org.NewDomainAddedEvent(context.Background(),
&org.NewAggregate("org1").Aggregate,
"org.zitadel.ch"),
),
eventFromEventPusher(
org.NewDomainVerifiedEvent(context.Background(),
&org.NewAggregate("org1").Aggregate,
"org.zitadel.ch"),
),
eventFromEventPusher(
org.NewDomainPrimarySetEvent(context.Background(),
&org.NewAggregate("org1").Aggregate,
"org.zitadel.ch"),
),
),
expectPush(
org.NewOrgChangedEvent(context.Background(),
&org.NewAggregate("org1").Aggregate, "org", "ORG",
),
),
),
},
args: args{
ctx: http_util.WithRequestedHost(context.Background(), "zitadel.ch"),
orgID: "org1",
name: "ORG",
},
res: res{},
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {