mirror of
https://github.com/zitadel/zitadel.git
synced 2025-08-13 17:55:56 +00:00
support password changed
This commit is contained in:
@@ -62,8 +62,6 @@ func Test_userNotifier_reduceInitCodeAdded(t *testing.T) {
|
|||||||
Content: expectContent,
|
Content: expectContent,
|
||||||
}
|
}
|
||||||
codeAlg, code := cryptoValue(t, ctrl, "testcode")
|
codeAlg, code := cryptoValue(t, ctrl, "testcode")
|
||||||
smtpAlg, _ := cryptoValue(t, ctrl, "smtppw")
|
|
||||||
queries.EXPECT().NotificationProviderByIDAndType(gomock.Any(), gomock.Any(), gomock.Any()).AnyTimes().Return(&query.DebugNotificationProvider{}, nil)
|
|
||||||
expectTemplateQueries(queries, givenTemplate)
|
expectTemplateQueries(queries, givenTemplate)
|
||||||
commands.EXPECT().HumanInitCodeSent(gomock.Any(), orgID, userID).Return(nil)
|
commands.EXPECT().HumanInitCodeSent(gomock.Any(), orgID, userID).Return(nil)
|
||||||
return fields{
|
return fields{
|
||||||
@@ -73,8 +71,6 @@ func Test_userNotifier_reduceInitCodeAdded(t *testing.T) {
|
|||||||
es_repo_mock.NewRepo(t).ExpectFilterEvents(),
|
es_repo_mock.NewRepo(t).ExpectFilterEvents(),
|
||||||
)),
|
)),
|
||||||
userDataCrypto: codeAlg,
|
userDataCrypto: codeAlg,
|
||||||
SMTPPasswordCrypto: smtpAlg,
|
|
||||||
SMSTokenCrypto: nil,
|
|
||||||
}, args{
|
}, args{
|
||||||
event: &user.HumanInitialCodeAddedEvent{
|
event: &user.HumanInitialCodeAddedEvent{
|
||||||
BaseEvent: *eventstore.BaseEventFromRepo(&repository.Event{
|
BaseEvent: *eventstore.BaseEventFromRepo(&repository.Event{
|
||||||
@@ -99,8 +95,6 @@ func Test_userNotifier_reduceInitCodeAdded(t *testing.T) {
|
|||||||
Content: expectContent,
|
Content: expectContent,
|
||||||
}
|
}
|
||||||
codeAlg, code := cryptoValue(t, ctrl, "testcode")
|
codeAlg, code := cryptoValue(t, ctrl, "testcode")
|
||||||
smtpAlg, _ := cryptoValue(t, ctrl, "smtppw")
|
|
||||||
queries.EXPECT().NotificationProviderByIDAndType(gomock.Any(), gomock.Any(), gomock.Any()).AnyTimes().Return(&query.DebugNotificationProvider{}, nil)
|
|
||||||
queries.EXPECT().SearchInstanceDomains(gomock.Any(), gomock.Any()).Return(&query.InstanceDomains{
|
queries.EXPECT().SearchInstanceDomains(gomock.Any(), gomock.Any()).Return(&query.InstanceDomains{
|
||||||
Domains: []*query.InstanceDomain{{
|
Domains: []*query.InstanceDomain{{
|
||||||
Domain: instancePrimaryDomain,
|
Domain: instancePrimaryDomain,
|
||||||
@@ -116,7 +110,6 @@ func Test_userNotifier_reduceInitCodeAdded(t *testing.T) {
|
|||||||
es_repo_mock.NewRepo(t).ExpectFilterEvents(),
|
es_repo_mock.NewRepo(t).ExpectFilterEvents(),
|
||||||
)),
|
)),
|
||||||
userDataCrypto: codeAlg,
|
userDataCrypto: codeAlg,
|
||||||
SMTPPasswordCrypto: smtpAlg,
|
|
||||||
}, args{
|
}, args{
|
||||||
event: &user.HumanInitialCodeAddedEvent{
|
event: &user.HumanInitialCodeAddedEvent{
|
||||||
BaseEvent: *eventstore.BaseEventFromRepo(&repository.Event{
|
BaseEvent: *eventstore.BaseEventFromRepo(&repository.Event{
|
||||||
@@ -141,8 +134,6 @@ func Test_userNotifier_reduceInitCodeAdded(t *testing.T) {
|
|||||||
Content: expectContent,
|
Content: expectContent,
|
||||||
}
|
}
|
||||||
codeAlg, code := cryptoValue(t, ctrl, testCode)
|
codeAlg, code := cryptoValue(t, ctrl, testCode)
|
||||||
smtpAlg, _ := cryptoValue(t, ctrl, "smtppw")
|
|
||||||
queries.EXPECT().NotificationProviderByIDAndType(gomock.Any(), gomock.Any(), gomock.Any()).AnyTimes().Return(&query.DebugNotificationProvider{}, nil)
|
|
||||||
expectTemplateQueries(queries, givenTemplate)
|
expectTemplateQueries(queries, givenTemplate)
|
||||||
commands.EXPECT().HumanInitCodeSent(gomock.Any(), orgID, userID).Return(nil)
|
commands.EXPECT().HumanInitCodeSent(gomock.Any(), orgID, userID).Return(nil)
|
||||||
return fields{
|
return fields{
|
||||||
@@ -152,8 +143,6 @@ func Test_userNotifier_reduceInitCodeAdded(t *testing.T) {
|
|||||||
es_repo_mock.NewRepo(t).ExpectFilterEvents(),
|
es_repo_mock.NewRepo(t).ExpectFilterEvents(),
|
||||||
)),
|
)),
|
||||||
userDataCrypto: codeAlg,
|
userDataCrypto: codeAlg,
|
||||||
SMTPPasswordCrypto: smtpAlg,
|
|
||||||
SMSTokenCrypto: nil,
|
|
||||||
}, args{
|
}, args{
|
||||||
event: &user.HumanInitialCodeAddedEvent{
|
event: &user.HumanInitialCodeAddedEvent{
|
||||||
BaseEvent: *eventstore.BaseEventFromRepo(&repository.Event{
|
BaseEvent: *eventstore.BaseEventFromRepo(&repository.Event{
|
||||||
@@ -179,8 +168,6 @@ func Test_userNotifier_reduceInitCodeAdded(t *testing.T) {
|
|||||||
Content: expectContent,
|
Content: expectContent,
|
||||||
}
|
}
|
||||||
codeAlg, code := cryptoValue(t, ctrl, testCode)
|
codeAlg, code := cryptoValue(t, ctrl, testCode)
|
||||||
smtpAlg, _ := cryptoValue(t, ctrl, "smtppw")
|
|
||||||
queries.EXPECT().NotificationProviderByIDAndType(gomock.Any(), gomock.Any(), gomock.Any()).AnyTimes().Return(&query.DebugNotificationProvider{}, nil)
|
|
||||||
queries.EXPECT().SearchInstanceDomains(gomock.Any(), gomock.Any()).Return(&query.InstanceDomains{
|
queries.EXPECT().SearchInstanceDomains(gomock.Any(), gomock.Any()).Return(&query.InstanceDomains{
|
||||||
Domains: []*query.InstanceDomain{{
|
Domains: []*query.InstanceDomain{{
|
||||||
Domain: instancePrimaryDomain,
|
Domain: instancePrimaryDomain,
|
||||||
@@ -196,8 +183,6 @@ func Test_userNotifier_reduceInitCodeAdded(t *testing.T) {
|
|||||||
es_repo_mock.NewRepo(t).ExpectFilterEvents(),
|
es_repo_mock.NewRepo(t).ExpectFilterEvents(),
|
||||||
)),
|
)),
|
||||||
userDataCrypto: codeAlg,
|
userDataCrypto: codeAlg,
|
||||||
SMTPPasswordCrypto: smtpAlg,
|
|
||||||
SMSTokenCrypto: nil,
|
|
||||||
}, args{
|
}, args{
|
||||||
event: &user.HumanInitialCodeAddedEvent{
|
event: &user.HumanInitialCodeAddedEvent{
|
||||||
BaseEvent: *eventstore.BaseEventFromRepo(&repository.Event{
|
BaseEvent: *eventstore.BaseEventFromRepo(&repository.Event{
|
||||||
@@ -211,6 +196,7 @@ func Test_userNotifier_reduceInitCodeAdded(t *testing.T) {
|
|||||||
}, w
|
}, w
|
||||||
},
|
},
|
||||||
}}
|
}}
|
||||||
|
// TODO: Why don't we have an url template on user.HumanInitialCodeAddedEvent?
|
||||||
fs, err := statik_fs.NewWithNamespace("notification")
|
fs, err := statik_fs.NewWithNamespace("notification")
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
for _, tt := range tests {
|
for _, tt := range tests {
|
||||||
@@ -219,7 +205,7 @@ func Test_userNotifier_reduceInitCodeAdded(t *testing.T) {
|
|||||||
queries := mock.NewMockQueries(ctrl)
|
queries := mock.NewMockQueries(ctrl)
|
||||||
commands := mock.NewMockCommands(ctrl)
|
commands := mock.NewMockCommands(ctrl)
|
||||||
f, a, w := tt.test(ctrl, queries, commands)
|
f, a, w := tt.test(ctrl, queries, commands)
|
||||||
_, err = newUserNotifier(ctrl, fs, f, a, w).reduceInitCodeAdded(a.event)
|
_, err = newUserNotifier(t, ctrl, queries, fs, f, a, w).reduceInitCodeAdded(a.event)
|
||||||
if w.err != nil {
|
if w.err != nil {
|
||||||
w.err(t, err)
|
w.err(t, err)
|
||||||
} else {
|
} else {
|
||||||
@@ -245,8 +231,6 @@ func Test_userNotifier_reduceEmailCodeAdded(t *testing.T) {
|
|||||||
Content: expectContent,
|
Content: expectContent,
|
||||||
}
|
}
|
||||||
codeAlg, code := cryptoValue(t, ctrl, "testcode")
|
codeAlg, code := cryptoValue(t, ctrl, "testcode")
|
||||||
smtpAlg, _ := cryptoValue(t, ctrl, "smtppw")
|
|
||||||
queries.EXPECT().NotificationProviderByIDAndType(gomock.Any(), gomock.Any(), gomock.Any()).AnyTimes().Return(&query.DebugNotificationProvider{}, nil)
|
|
||||||
expectTemplateQueries(queries, givenTemplate)
|
expectTemplateQueries(queries, givenTemplate)
|
||||||
commands.EXPECT().HumanEmailVerificationCodeSent(gomock.Any(), orgID, userID).Return(nil)
|
commands.EXPECT().HumanEmailVerificationCodeSent(gomock.Any(), orgID, userID).Return(nil)
|
||||||
return fields{
|
return fields{
|
||||||
@@ -256,8 +240,6 @@ func Test_userNotifier_reduceEmailCodeAdded(t *testing.T) {
|
|||||||
es_repo_mock.NewRepo(t).ExpectFilterEvents(),
|
es_repo_mock.NewRepo(t).ExpectFilterEvents(),
|
||||||
)),
|
)),
|
||||||
userDataCrypto: codeAlg,
|
userDataCrypto: codeAlg,
|
||||||
SMTPPasswordCrypto: smtpAlg,
|
|
||||||
SMSTokenCrypto: nil,
|
|
||||||
}, args{
|
}, args{
|
||||||
event: &user.HumanEmailCodeAddedEvent{
|
event: &user.HumanEmailCodeAddedEvent{
|
||||||
BaseEvent: *eventstore.BaseEventFromRepo(&repository.Event{
|
BaseEvent: *eventstore.BaseEventFromRepo(&repository.Event{
|
||||||
@@ -284,8 +266,6 @@ func Test_userNotifier_reduceEmailCodeAdded(t *testing.T) {
|
|||||||
Content: expectContent,
|
Content: expectContent,
|
||||||
}
|
}
|
||||||
codeAlg, code := cryptoValue(t, ctrl, "testcode")
|
codeAlg, code := cryptoValue(t, ctrl, "testcode")
|
||||||
smtpAlg, _ := cryptoValue(t, ctrl, "smtppw")
|
|
||||||
queries.EXPECT().NotificationProviderByIDAndType(gomock.Any(), gomock.Any(), gomock.Any()).AnyTimes().Return(&query.DebugNotificationProvider{}, nil)
|
|
||||||
queries.EXPECT().SearchInstanceDomains(gomock.Any(), gomock.Any()).Return(&query.InstanceDomains{
|
queries.EXPECT().SearchInstanceDomains(gomock.Any(), gomock.Any()).Return(&query.InstanceDomains{
|
||||||
Domains: []*query.InstanceDomain{{
|
Domains: []*query.InstanceDomain{{
|
||||||
Domain: instancePrimaryDomain,
|
Domain: instancePrimaryDomain,
|
||||||
@@ -301,7 +281,6 @@ func Test_userNotifier_reduceEmailCodeAdded(t *testing.T) {
|
|||||||
es_repo_mock.NewRepo(t).ExpectFilterEvents(),
|
es_repo_mock.NewRepo(t).ExpectFilterEvents(),
|
||||||
)),
|
)),
|
||||||
userDataCrypto: codeAlg,
|
userDataCrypto: codeAlg,
|
||||||
SMTPPasswordCrypto: smtpAlg,
|
|
||||||
}, args{
|
}, args{
|
||||||
event: &user.HumanEmailCodeAddedEvent{
|
event: &user.HumanEmailCodeAddedEvent{
|
||||||
BaseEvent: *eventstore.BaseEventFromRepo(&repository.Event{
|
BaseEvent: *eventstore.BaseEventFromRepo(&repository.Event{
|
||||||
@@ -328,8 +307,6 @@ func Test_userNotifier_reduceEmailCodeAdded(t *testing.T) {
|
|||||||
Content: expectContent,
|
Content: expectContent,
|
||||||
}
|
}
|
||||||
codeAlg, code := cryptoValue(t, ctrl, testCode)
|
codeAlg, code := cryptoValue(t, ctrl, testCode)
|
||||||
smtpAlg, _ := cryptoValue(t, ctrl, "smtppw")
|
|
||||||
queries.EXPECT().NotificationProviderByIDAndType(gomock.Any(), gomock.Any(), gomock.Any()).AnyTimes().Return(&query.DebugNotificationProvider{}, nil)
|
|
||||||
expectTemplateQueries(queries, givenTemplate)
|
expectTemplateQueries(queries, givenTemplate)
|
||||||
commands.EXPECT().HumanEmailVerificationCodeSent(gomock.Any(), orgID, userID).Return(nil)
|
commands.EXPECT().HumanEmailVerificationCodeSent(gomock.Any(), orgID, userID).Return(nil)
|
||||||
return fields{
|
return fields{
|
||||||
@@ -339,7 +316,6 @@ func Test_userNotifier_reduceEmailCodeAdded(t *testing.T) {
|
|||||||
es_repo_mock.NewRepo(t).ExpectFilterEvents(),
|
es_repo_mock.NewRepo(t).ExpectFilterEvents(),
|
||||||
)),
|
)),
|
||||||
userDataCrypto: codeAlg,
|
userDataCrypto: codeAlg,
|
||||||
SMTPPasswordCrypto: smtpAlg,
|
|
||||||
SMSTokenCrypto: nil,
|
SMSTokenCrypto: nil,
|
||||||
}, args{
|
}, args{
|
||||||
event: &user.HumanEmailCodeAddedEvent{
|
event: &user.HumanEmailCodeAddedEvent{
|
||||||
@@ -368,8 +344,6 @@ func Test_userNotifier_reduceEmailCodeAdded(t *testing.T) {
|
|||||||
Content: expectContent,
|
Content: expectContent,
|
||||||
}
|
}
|
||||||
codeAlg, code := cryptoValue(t, ctrl, testCode)
|
codeAlg, code := cryptoValue(t, ctrl, testCode)
|
||||||
smtpAlg, _ := cryptoValue(t, ctrl, "smtppw")
|
|
||||||
queries.EXPECT().NotificationProviderByIDAndType(gomock.Any(), gomock.Any(), gomock.Any()).AnyTimes().Return(&query.DebugNotificationProvider{}, nil)
|
|
||||||
queries.EXPECT().SearchInstanceDomains(gomock.Any(), gomock.Any()).Return(&query.InstanceDomains{
|
queries.EXPECT().SearchInstanceDomains(gomock.Any(), gomock.Any()).Return(&query.InstanceDomains{
|
||||||
Domains: []*query.InstanceDomain{{
|
Domains: []*query.InstanceDomain{{
|
||||||
Domain: instancePrimaryDomain,
|
Domain: instancePrimaryDomain,
|
||||||
@@ -385,8 +359,6 @@ func Test_userNotifier_reduceEmailCodeAdded(t *testing.T) {
|
|||||||
es_repo_mock.NewRepo(t).ExpectFilterEvents(),
|
es_repo_mock.NewRepo(t).ExpectFilterEvents(),
|
||||||
)),
|
)),
|
||||||
userDataCrypto: codeAlg,
|
userDataCrypto: codeAlg,
|
||||||
SMTPPasswordCrypto: smtpAlg,
|
|
||||||
SMSTokenCrypto: nil,
|
|
||||||
}, args{
|
}, args{
|
||||||
event: &user.HumanEmailCodeAddedEvent{
|
event: &user.HumanEmailCodeAddedEvent{
|
||||||
BaseEvent: *eventstore.BaseEventFromRepo(&repository.Event{
|
BaseEvent: *eventstore.BaseEventFromRepo(&repository.Event{
|
||||||
@@ -414,8 +386,6 @@ func Test_userNotifier_reduceEmailCodeAdded(t *testing.T) {
|
|||||||
Content: expectContent,
|
Content: expectContent,
|
||||||
}
|
}
|
||||||
codeAlg, code := cryptoValue(t, ctrl, testCode)
|
codeAlg, code := cryptoValue(t, ctrl, testCode)
|
||||||
smtpAlg, _ := cryptoValue(t, ctrl, "smtppw")
|
|
||||||
queries.EXPECT().NotificationProviderByIDAndType(gomock.Any(), gomock.Any(), gomock.Any()).AnyTimes().Return(&query.DebugNotificationProvider{}, nil)
|
|
||||||
expectTemplateQueries(queries, givenTemplate)
|
expectTemplateQueries(queries, givenTemplate)
|
||||||
commands.EXPECT().HumanEmailVerificationCodeSent(gomock.Any(), orgID, userID).Return(nil)
|
commands.EXPECT().HumanEmailVerificationCodeSent(gomock.Any(), orgID, userID).Return(nil)
|
||||||
return fields{
|
return fields{
|
||||||
@@ -425,7 +395,6 @@ func Test_userNotifier_reduceEmailCodeAdded(t *testing.T) {
|
|||||||
es_repo_mock.NewRepo(t).ExpectFilterEvents(),
|
es_repo_mock.NewRepo(t).ExpectFilterEvents(),
|
||||||
)),
|
)),
|
||||||
userDataCrypto: codeAlg,
|
userDataCrypto: codeAlg,
|
||||||
SMTPPasswordCrypto: smtpAlg,
|
|
||||||
SMSTokenCrypto: nil,
|
SMSTokenCrypto: nil,
|
||||||
}, args{
|
}, args{
|
||||||
event: &user.HumanEmailCodeAddedEvent{
|
event: &user.HumanEmailCodeAddedEvent{
|
||||||
@@ -451,7 +420,100 @@ func Test_userNotifier_reduceEmailCodeAdded(t *testing.T) {
|
|||||||
queries := mock.NewMockQueries(ctrl)
|
queries := mock.NewMockQueries(ctrl)
|
||||||
commands := mock.NewMockCommands(ctrl)
|
commands := mock.NewMockCommands(ctrl)
|
||||||
f, a, w := tt.test(ctrl, queries, commands)
|
f, a, w := tt.test(ctrl, queries, commands)
|
||||||
_, err = newUserNotifier(ctrl, fs, f, a, w).reduceEmailCodeAdded(a.event)
|
_, err = newUserNotifier(t, ctrl, queries, fs, f, a, w).reduceEmailCodeAdded(a.event)
|
||||||
|
if w.err != nil {
|
||||||
|
w.err(t, err)
|
||||||
|
} else {
|
||||||
|
assert.NoError(t, err)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func Test_userNotifier_reducePasswordChanged(t *testing.T) {
|
||||||
|
expectMailSubject := "Password of user has changed"
|
||||||
|
tests := []struct {
|
||||||
|
name string
|
||||||
|
test func(*gomock.Controller, *mock.MockQueries, *mock.MockCommands) (fields, args, want)
|
||||||
|
}{{
|
||||||
|
name: "asset url with event trigger url",
|
||||||
|
test: func(ctrl *gomock.Controller, queries *mock.MockQueries, commands *mock.MockCommands) (f fields, a args, w want) {
|
||||||
|
givenTemplate := "{{.LogoURL}}"
|
||||||
|
expectContent := fmt.Sprintf("%s%s/%s/%s", eventOrigin, assetsPath, policyID, logoURL)
|
||||||
|
w.message = messages.Email{
|
||||||
|
Recipients: []string{lastEmail},
|
||||||
|
Subject: expectMailSubject,
|
||||||
|
Content: expectContent,
|
||||||
|
}
|
||||||
|
queries.EXPECT().NotificationPolicyByOrg(gomock.Any(), gomock.Any(), orgID, gomock.Any()).Return(&query.NotificationPolicy{
|
||||||
|
PasswordChange: true,
|
||||||
|
}, nil)
|
||||||
|
expectTemplateQueries(queries, givenTemplate)
|
||||||
|
commands.EXPECT().PasswordChangeSent(gomock.Any(), orgID, userID).Return(nil)
|
||||||
|
return fields{
|
||||||
|
queries: queries,
|
||||||
|
commands: commands,
|
||||||
|
es: eventstore.NewEventstore(eventstore.TestConfig(
|
||||||
|
es_repo_mock.NewRepo(t).ExpectFilterEvents(),
|
||||||
|
)),
|
||||||
|
}, args{
|
||||||
|
event: &user.HumanPasswordChangedEvent{
|
||||||
|
BaseEvent: *eventstore.BaseEventFromRepo(&repository.Event{
|
||||||
|
AggregateID: userID,
|
||||||
|
ResourceOwner: sql.NullString{String: orgID},
|
||||||
|
CreationDate: time.Now().UTC(),
|
||||||
|
}),
|
||||||
|
TriggeredAtOrigin: eventOrigin,
|
||||||
|
},
|
||||||
|
}, w
|
||||||
|
},
|
||||||
|
}, {
|
||||||
|
name: "asset url without event trigger url",
|
||||||
|
test: func(ctrl *gomock.Controller, queries *mock.MockQueries, commands *mock.MockCommands) (f fields, a args, w want) {
|
||||||
|
givenTemplate := "{{.LogoURL}}"
|
||||||
|
expectContent := fmt.Sprintf("%s://%s:%d%s/%s/%s", externalProtocol, instancePrimaryDomain, externalPort, assetsPath, policyID, logoURL)
|
||||||
|
w.message = messages.Email{
|
||||||
|
Recipients: []string{lastEmail},
|
||||||
|
Subject: expectMailSubject,
|
||||||
|
Content: expectContent,
|
||||||
|
}
|
||||||
|
queries.EXPECT().NotificationPolicyByOrg(gomock.Any(), gomock.Any(), orgID, gomock.Any()).Return(&query.NotificationPolicy{
|
||||||
|
PasswordChange: true,
|
||||||
|
}, nil)
|
||||||
|
queries.EXPECT().SearchInstanceDomains(gomock.Any(), gomock.Any()).Return(&query.InstanceDomains{
|
||||||
|
Domains: []*query.InstanceDomain{{
|
||||||
|
Domain: instancePrimaryDomain,
|
||||||
|
IsPrimary: true,
|
||||||
|
}},
|
||||||
|
}, nil)
|
||||||
|
expectTemplateQueries(queries, givenTemplate)
|
||||||
|
commands.EXPECT().PasswordChangeSent(gomock.Any(), orgID, userID).Return(nil)
|
||||||
|
return fields{
|
||||||
|
queries: queries,
|
||||||
|
commands: commands,
|
||||||
|
es: eventstore.NewEventstore(eventstore.TestConfig(
|
||||||
|
es_repo_mock.NewRepo(t).ExpectFilterEvents(),
|
||||||
|
)),
|
||||||
|
}, args{
|
||||||
|
event: &user.HumanPasswordChangedEvent{
|
||||||
|
BaseEvent: *eventstore.BaseEventFromRepo(&repository.Event{
|
||||||
|
AggregateID: userID,
|
||||||
|
ResourceOwner: sql.NullString{String: orgID},
|
||||||
|
CreationDate: time.Now().UTC(),
|
||||||
|
}),
|
||||||
|
},
|
||||||
|
}, w
|
||||||
|
},
|
||||||
|
}}
|
||||||
|
fs, err := statik_fs.NewWithNamespace("notification")
|
||||||
|
assert.NoError(t, err)
|
||||||
|
for _, tt := range tests {
|
||||||
|
t.Run(tt.name, func(t *testing.T) {
|
||||||
|
ctrl := gomock.NewController(t)
|
||||||
|
queries := mock.NewMockQueries(ctrl)
|
||||||
|
commands := mock.NewMockCommands(ctrl)
|
||||||
|
f, a, w := tt.test(ctrl, queries, commands)
|
||||||
|
_, err = newUserNotifier(t, ctrl, queries, fs, f, a, w).reducePasswordChanged(a.event)
|
||||||
if w.err != nil {
|
if w.err != nil {
|
||||||
w.err(t, err)
|
w.err(t, err)
|
||||||
} else {
|
} else {
|
||||||
@@ -466,7 +528,6 @@ type fields struct {
|
|||||||
commands *mock.MockCommands
|
commands *mock.MockCommands
|
||||||
es *eventstore.Eventstore
|
es *eventstore.Eventstore
|
||||||
userDataCrypto crypto.EncryptionAlgorithm
|
userDataCrypto crypto.EncryptionAlgorithm
|
||||||
SMTPPasswordCrypto crypto.EncryptionAlgorithm
|
|
||||||
SMSTokenCrypto crypto.EncryptionAlgorithm
|
SMSTokenCrypto crypto.EncryptionAlgorithm
|
||||||
}
|
}
|
||||||
type args struct {
|
type args struct {
|
||||||
@@ -477,7 +538,9 @@ type want struct {
|
|||||||
err assert.ErrorAssertionFunc
|
err assert.ErrorAssertionFunc
|
||||||
}
|
}
|
||||||
|
|
||||||
func newUserNotifier(ctrl *gomock.Controller, fs http.FileSystem, f fields, a args, w want) *userNotifier {
|
func newUserNotifier(t *testing.T, ctrl *gomock.Controller, queries *mock.MockQueries, fs http.FileSystem, f fields, a args, w want) *userNotifier {
|
||||||
|
queries.EXPECT().NotificationProviderByIDAndType(gomock.Any(), gomock.Any(), gomock.Any()).AnyTimes().Return(&query.DebugNotificationProvider{}, nil)
|
||||||
|
smtpAlg, _ := cryptoValue(t, ctrl, "smtppw")
|
||||||
channel := channel_mock.NewMockNotificationChannel(ctrl)
|
channel := channel_mock.NewMockNotificationChannel(ctrl)
|
||||||
if w.err == nil {
|
if w.err == nil {
|
||||||
w.message.TriggeringEvent = a.event
|
w.message.TriggeringEvent = a.event
|
||||||
@@ -493,7 +556,7 @@ func newUserNotifier(ctrl *gomock.Controller, fs http.FileSystem, f fields, a ar
|
|||||||
externalSecure,
|
externalSecure,
|
||||||
"",
|
"",
|
||||||
f.userDataCrypto,
|
f.userDataCrypto,
|
||||||
f.SMTPPasswordCrypto,
|
smtpAlg,
|
||||||
f.SMSTokenCrypto,
|
f.SMSTokenCrypto,
|
||||||
fs,
|
fs,
|
||||||
),
|
),
|
||||||
|
@@ -33,6 +33,7 @@ type HumanPasswordChangedEvent struct {
|
|||||||
EncodedHash string `json:"encodedHash,omitempty"`
|
EncodedHash string `json:"encodedHash,omitempty"`
|
||||||
ChangeRequired bool `json:"changeRequired"`
|
ChangeRequired bool `json:"changeRequired"`
|
||||||
UserAgentID string `json:"userAgentID,omitempty"`
|
UserAgentID string `json:"userAgentID,omitempty"`
|
||||||
|
TriggeredAtOrigin string `json:"base_url,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func (e *HumanPasswordChangedEvent) Data() interface{} {
|
func (e *HumanPasswordChangedEvent) Data() interface{} {
|
||||||
@@ -43,6 +44,10 @@ func (e *HumanPasswordChangedEvent) UniqueConstraints() []*eventstore.EventUniqu
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (e *HumanPasswordChangedEvent) TriggerOrigin() string {
|
||||||
|
return e.TriggeredAtOrigin
|
||||||
|
}
|
||||||
|
|
||||||
func NewHumanPasswordChangedEvent(
|
func NewHumanPasswordChangedEvent(
|
||||||
ctx context.Context,
|
ctx context.Context,
|
||||||
aggregate *eventstore.Aggregate,
|
aggregate *eventstore.Aggregate,
|
||||||
|
Reference in New Issue
Block a user