From 08b361ca2998ccf7b9e718438475d8f6f6d7e5e3 Mon Sep 17 00:00:00 2001 From: forgejo-backport-action Date: Thu, 26 Jun 2025 08:14:22 +0200 Subject: [PATCH] [v11.0/forgejo] chore: sort mailer messages in test assertion (#8292) **Backport:** https://codeberg.org/forgejo/forgejo/pulls/8226 - Ref https://codeberg.org/forgejo/forgejo/issues/8221#issuecomment-5461218 - Databases might return users in a different order, sort them before doing assertions on them. Co-authored-by: Gusted Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/8292 Co-authored-by: forgejo-backport-action Co-committed-by: forgejo-backport-action --- tests/integration/integration_test.go | 8 ++++++++ tests/integration/pull_review_test.go | 2 ++ 2 files changed, 10 insertions(+) diff --git a/tests/integration/integration_test.go b/tests/integration/integration_test.go index 4257a999d9..4922cfe696 100644 --- a/tests/integration/integration_test.go +++ b/tests/integration/integration_test.go @@ -19,6 +19,7 @@ import ( "os" "os/exec" "path/filepath" + "slices" "strconv" "strings" "sync/atomic" @@ -40,6 +41,7 @@ import ( "forgejo.org/routers" "forgejo.org/services/auth/source/remote" gitea_context "forgejo.org/services/context" + "forgejo.org/services/mailer" user_service "forgejo.org/services/user" "forgejo.org/tests" @@ -691,3 +693,9 @@ func GetHTMLTitle(t testing.TB, session *TestSession, urlStr string) string { doc := NewHTMLParser(t, resp.Body) return doc.Find("head title").Text() } + +func SortMailerMessages(msgs []*mailer.Message) { + slices.SortFunc(msgs, func(a, b *mailer.Message) int { + return strings.Compare(b.To, a.To) + }) +} diff --git a/tests/integration/pull_review_test.go b/tests/integration/pull_review_test.go index 4be493b196..5bb9c75af4 100644 --- a/tests/integration/pull_review_test.go +++ b/tests/integration/pull_review_test.go @@ -712,6 +712,7 @@ func TestPullRequestReplyMail(t *testing.T) { called := false defer test.MockVariableValue(&mailer.SendAsync, func(msgs ...*mailer.Message) { assert.Len(t, msgs, 2) + SortMailerMessages(msgs) assert.Equal(t, "user1@example.com", msgs[0].To) assert.EqualValues(t, "Re: [user2/repo1] issue2 (PR #2)", msgs[0].Subject) assert.Contains(t, msgs[0].Body, "Notification time!") @@ -740,6 +741,7 @@ func TestPullRequestReplyMail(t *testing.T) { called := false defer test.MockVariableValue(&mailer.SendAsync, func(msgs ...*mailer.Message) { assert.Len(t, msgs, 2) + SortMailerMessages(msgs) assert.Equal(t, "user1@example.com", msgs[0].To) assert.EqualValues(t, "Re: [user2/repo1] issue2 (PR #2)", msgs[0].Subject) assert.Contains(t, msgs[0].Body, "Notification time 2!")