chore: improve notifications tests (#13863)

This commit is contained in:
Danny Kopping
2024-07-10 15:25:23 +02:00
committed by GitHub
parent c8484b4fc8
commit 542fff7df0
5 changed files with 133 additions and 92 deletions
+2 -1
View File
@@ -2493,7 +2493,8 @@ func (s *MethodTestSuite) TestSystemFunctions() {
}))
s.Run("FetchNewMessageMetadata", s.Subtest(func(db database.Store, check *expects) {
// TODO: update this test once we have a specific role for notifications
check.Args(database.FetchNewMessageMetadataParams{}).Asserts(rbac.ResourceSystem, policy.ActionRead)
u := dbgen.User(s.T(), db, database.User{})
check.Args(database.FetchNewMessageMetadataParams{UserID: u.ID}).Asserts(rbac.ResourceSystem, policy.ActionRead)
}))
s.Run("GetNotificationMessagesByStatus", s.Subtest(func(db database.Store, check *expects) {
// TODO: update this test once we have a specific role for notifications
+16 -5
View File
@@ -1229,7 +1229,7 @@ func (*FakeQuerier) BulkMarkNotificationMessagesFailed(_ context.Context, arg da
if err != nil {
return 0, err
}
return -1, nil
return int64(len(arg.IDs)), nil
}
func (*FakeQuerier) BulkMarkNotificationMessagesSent(_ context.Context, arg database.BulkMarkNotificationMessagesSentParams) (int64, error) {
@@ -1237,7 +1237,7 @@ func (*FakeQuerier) BulkMarkNotificationMessagesSent(_ context.Context, arg data
if err != nil {
return 0, err
}
return -1, nil
return int64(len(arg.IDs)), nil
}
func (*FakeQuerier) CleanTailnetCoordinators(_ context.Context) error {
@@ -1864,20 +1864,31 @@ func (q *FakeQuerier) FavoriteWorkspace(_ context.Context, arg uuid.UUID) error
return nil
}
func (*FakeQuerier) FetchNewMessageMetadata(_ context.Context, arg database.FetchNewMessageMetadataParams) (database.FetchNewMessageMetadataRow, error) {
func (q *FakeQuerier) FetchNewMessageMetadata(_ context.Context, arg database.FetchNewMessageMetadataParams) (database.FetchNewMessageMetadataRow, error) {
err := validateDatabaseType(arg)
if err != nil {
return database.FetchNewMessageMetadataRow{}, err
}
user, err := q.getUserByIDNoLock(arg.UserID)
if err != nil {
return database.FetchNewMessageMetadataRow{}, xerrors.Errorf("fetch user: %w", err)
}
// Mimic COALESCE in query
userName := user.Name
if userName == "" {
userName = user.Username
}
actions, err := json.Marshal([]types.TemplateAction{{URL: "http://xyz.com", Label: "XYZ"}})
if err != nil {
return database.FetchNewMessageMetadataRow{}, err
}
return database.FetchNewMessageMetadataRow{
UserEmail: "test@test.com",
UserName: "Testy McTester",
UserEmail: user.Email,
UserName: userName,
NotificationName: "Some notification",
Actions: actions,
UserID: arg.UserID,