fix: setup instance with human an machine user at creation (#7997)

# Which Problems Are Solved

Currently on instance setup there is only a possibility to either use a
human or a machine user and not both at creation.

# How the Problems Are Solved

The logic in the instance setup is refactored and changed so there is
not an exclusion.

# Additional Changes

Refactoring, so that unit testing is possible to add for the different
elements of an instance setup.

# Additional Context

Closes #6430
This commit is contained in:
Stefan Benz
2024-05-23 12:28:46 +02:00
committed by GitHub
parent cfa3d013a4
commit e58869c090
7 changed files with 1393 additions and 279 deletions

View File

@@ -19,160 +19,6 @@ import (
"github.com/zitadel/zitadel/internal/zerrors"
)
func TestCommandSide_AddDefaultLabelPolicy(t *testing.T) {
type fields struct {
eventstore *eventstore.Eventstore
}
type args struct {
ctx context.Context
primaryColor string
backgroundColor string
warnColor string
fontColor string
primaryColorDark string
backgroundColorDark string
warnColorDark string
fontColorDark string
hideLoginNameSuffix bool
errorMsgPopup bool
disableWatermark bool
themeMode domain.LabelPolicyThemeMode
}
type res struct {
want *domain.ObjectDetails
err func(error) bool
}
tests := []struct {
name string
fields fields
args args
res res
}{
{
name: "labelpolicy already existing, already exists error",
fields: fields{
eventstore: eventstoreExpect(
t,
expectFilter(
eventFromEventPusher(
instance.NewLabelPolicyAddedEvent(context.Background(),
&instance.NewAggregate("INSTANCE").Aggregate,
"#ffffff",
"#ffffff",
"#ffffff",
"#ffffff",
"#ffffff",
"#ffffff",
"#ffffff",
"#ffffff",
true,
true,
true,
domain.LabelPolicyThemeAuto,
),
),
),
),
},
args: args{
ctx: context.Background(),
primaryColor: "#ffffff",
backgroundColor: "#ffffff",
warnColor: "#ffffff",
fontColor: "#ffffff",
primaryColorDark: "#ffffff",
backgroundColorDark: "#ffffff",
warnColorDark: "#ffffff",
fontColorDark: "#ffffff",
hideLoginNameSuffix: true,
errorMsgPopup: true,
disableWatermark: true,
themeMode: domain.LabelPolicyThemeAuto,
},
res: res{
err: zerrors.IsErrorAlreadyExists,
},
},
{
name: "add policy,ok",
fields: fields{
eventstore: eventstoreExpect(
t,
expectFilter(),
expectPush(
instance.NewLabelPolicyAddedEvent(context.Background(),
&instance.NewAggregate("INSTANCE").Aggregate,
"#ffffff",
"#ffffff",
"#ffffff",
"#ffffff",
"#ffffff",
"#ffffff",
"#ffffff",
"#ffffff",
true,
true,
true,
domain.LabelPolicyThemeDark,
),
),
),
},
args: args{
ctx: authz.WithInstanceID(context.Background(), "INSTANCE"),
primaryColor: "#ffffff",
backgroundColor: "#ffffff",
warnColor: "#ffffff",
fontColor: "#ffffff",
primaryColorDark: "#ffffff",
backgroundColorDark: "#ffffff",
warnColorDark: "#ffffff",
fontColorDark: "#ffffff",
hideLoginNameSuffix: true,
errorMsgPopup: true,
disableWatermark: true,
themeMode: domain.LabelPolicyThemeDark,
},
res: res{
want: &domain.ObjectDetails{
ResourceOwner: "INSTANCE",
},
},
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
r := &Commands{
eventstore: tt.fields.eventstore,
}
got, err := r.AddDefaultLabelPolicy(
tt.args.ctx,
tt.args.primaryColor,
tt.args.backgroundColor,
tt.args.warnColor,
tt.args.fontColor,
tt.args.primaryColorDark,
tt.args.backgroundColorDark,
tt.args.warnColorDark,
tt.args.fontColorDark,
tt.args.hideLoginNameSuffix,
tt.args.errorMsgPopup,
tt.args.disableWatermark,
tt.args.themeMode,
)
if tt.res.err == nil {
assert.NoError(t, err)
}
if tt.res.err != nil && !tt.res.err(err) {
t.Errorf("got wrong err: %v ", err)
}
if tt.res.err == nil {
assert.Equal(t, tt.res.want, got)
}
})
}
}
func TestCommandSide_ChangeDefaultLabelPolicy(t *testing.T) {
type fields struct {
eventstore *eventstore.Eventstore