snapshot of https://github.com/ory/kratos.git (master, 2026-09-15; blobs > 131072B omitted)
Some checks failed
CI / Run tests and lints (push) Failing after 29s
CI / Build CLI docs (push) Has been skipped
CI / Run Playwright end-to-end tests (mysql) (push) Failing after 3s
CI / Run Playwright end-to-end tests (postgres) (push) Failing after 2s
CI / Run Playwright end-to-end tests (sqlite) (push) Failing after 3s
CodeQL / Analyze (go) (push) Failing after 4s
CodeQL / Analyze (javascript) (push) Failing after 3s
Docker Image Scanners / scanners (push) Failing after 4s
Synchronize Issue Labels / Synchronize Issue Labels (push) Has been skipped
CI / Run end-to-end tests (postgres) (push) Failing after 19s
CI / Run end-to-end tests (sqlite) (push) Failing after 2s
CI / Run Playwright end-to-end tests (cockroach) (push) Failing after 2s
CI / Draft newsletter (push) Has been skipped
CI / Generate release (push) Has been skipped
CI / Pending approval Slack notification (push) Has been skipped
CI / Send newsletter (push) Has been skipped
Some checks failed
CI / Run tests and lints (push) Failing after 29s
CI / Build CLI docs (push) Has been skipped
CI / Run Playwright end-to-end tests (mysql) (push) Failing after 3s
CI / Run Playwright end-to-end tests (postgres) (push) Failing after 2s
CI / Run Playwright end-to-end tests (sqlite) (push) Failing after 3s
CodeQL / Analyze (go) (push) Failing after 4s
CodeQL / Analyze (javascript) (push) Failing after 3s
Docker Image Scanners / scanners (push) Failing after 4s
Synchronize Issue Labels / Synchronize Issue Labels (push) Has been skipped
CI / Run end-to-end tests (postgres) (push) Failing after 19s
CI / Run end-to-end tests (sqlite) (push) Failing after 2s
CI / Run Playwright end-to-end tests (cockroach) (push) Failing after 2s
CI / Draft newsletter (push) Has been skipped
CI / Generate release (push) Has been skipped
CI / Pending approval Slack notification (push) Has been skipped
CI / Send newsletter (push) Has been skipped
This commit is contained in:
61
pkg/testhelpers/courier.go
Normal file
61
pkg/testhelpers/courier.go
Normal file
@@ -0,0 +1,61 @@
|
||||
// Copyright © 2023 Ory Corp
|
||||
// SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
package testhelpers
|
||||
|
||||
import (
|
||||
"context"
|
||||
"regexp"
|
||||
"sort"
|
||||
"strings"
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/require"
|
||||
|
||||
"github.com/ory/kratos/courier"
|
||||
keysetpagination "github.com/ory/x/pagination/keysetpagination_v2"
|
||||
)
|
||||
|
||||
func CourierExpectMessage(ctx context.Context, t *testing.T, reg interface {
|
||||
courier.PersistenceProvider
|
||||
}, recipient, subject string,
|
||||
) *courier.Message {
|
||||
t.Helper()
|
||||
messages, _, err := reg.CourierPersister().ListMessages(ctx, courier.ListCourierMessagesParameters{
|
||||
Recipient: recipient,
|
||||
}, []keysetpagination.Option{})
|
||||
require.NoError(t, err)
|
||||
|
||||
sort.Slice(messages, func(i, j int) bool {
|
||||
return messages[i].CreatedAt.After(messages[j].CreatedAt)
|
||||
})
|
||||
|
||||
for _, m := range messages {
|
||||
if strings.EqualFold(m.Recipient, recipient) && (strings.Contains(m.Subject, subject) || strings.Contains(m.Body, subject)) {
|
||||
return &m
|
||||
}
|
||||
}
|
||||
|
||||
require.Failf(t, "could not find courier messages", "could not find courier messages with recipient %s and subject %s", recipient, subject)
|
||||
return nil
|
||||
}
|
||||
|
||||
func CourierExpectLinkInMessage(t *testing.T, message *courier.Message, offset int) string {
|
||||
if offset == 0 {
|
||||
offset = 1
|
||||
}
|
||||
match := regexp.MustCompile(`(http[^\s]+)`).FindStringSubmatch(message.Body)
|
||||
require.Len(t, match, offset*2)
|
||||
|
||||
return match[offset]
|
||||
}
|
||||
|
||||
func CourierExpectCodeInMessage(t *testing.T, message *courier.Message, offset int) string {
|
||||
if offset == 0 {
|
||||
offset = 1
|
||||
}
|
||||
match := regexp.MustCompile(CodeRegex).FindStringSubmatch(message.Body)
|
||||
require.Len(t, match, offset*2)
|
||||
|
||||
return match[offset]
|
||||
}
|
||||
Reference in New Issue
Block a user