Merged in feature/momocks (pull request #150)

Decrease Mocks

* feature/nomocks

* nonet

* assertsaws

* assert
This commit is contained in:
Michael McGuinness
2025-05-23 00:20:01 +00:00
parent 36ff8096f3
commit 33d68b7e04
42 changed files with 617 additions and 650 deletions
+64 -11
View File
@@ -3,6 +3,7 @@ package test
import (
"context"
"fmt"
"log"
"log/slog"
"regexp"
"testing"
@@ -50,22 +51,22 @@ func GetQueueName(t testing.TB, name RunnerName) string {
return GetAlias(t, string(name))
}
func CreateQueue(t testing.TB, ctx context.Context, cfg serviceconfig.ConfigProvider, name RunnerName) string {
func CreateQueue(t testing.TB, cfg serviceconfig.ConfigProvider, name RunnerName) string {
t.Helper()
queueName := GetQueueName(t, name)
queueM, err := cfg.GetQueueClient().CreateQueue(ctx, &sqs.CreateQueueInput{
queueM, err := cfg.GetQueueClient().CreateQueue(t.Context(), &sqs.CreateQueueInput{
QueueName: aws.String(queueName),
})
require.NoError(t, err)
slog.Info("create queue", "name", queueName, "url", *queueM.QueueUrl)
err = cfg.PingQueueByURL(ctx, *queueM.QueueUrl)
err = cfg.PingQueueByURL(t.Context(), *queueM.QueueUrl)
require.NoError(t, err)
return *queueM.QueueUrl
}
func AssertMessage(t testing.TB, ctx context.Context, cfg serviceconfig.ConfigProvider, params *queue.ReceiveParams) types.Message {
func AssertMessage(t testing.TB, cfg serviceconfig.ConfigProvider, params *queue.ReceiveParams) types.Message {
t.Helper()
timeout := time.After(30 * time.Second)
tick := time.NewTicker(500 * time.Millisecond)
@@ -78,7 +79,7 @@ func AssertMessage(t testing.TB, ctx context.Context, cfg serviceconfig.ConfigPr
case <-tick.C:
slog.Info("receiving from queue")
result, err := cfg.ReceiveFromQueue(ctx, params)
result, err := cfg.ReceiveFromQueue(t.Context(), params)
if err != nil {
continue
} else if len(result.Messages) < 1 {
@@ -86,24 +87,24 @@ func AssertMessage(t testing.TB, ctx context.Context, cfg serviceconfig.ConfigPr
}
return result.Messages[0]
case <-ctx.Done():
t.Fatal(ctx.Err())
case <-t.Context().Done():
t.Fatal(t.Context().Err())
}
}
}
func AssertMessageBody(t testing.TB, ctx context.Context, cfg serviceconfig.ConfigProvider, url string, body *regexp.Regexp) {
func AssertMessageBody(t testing.TB, cfg serviceconfig.ConfigProvider, url string, body *regexp.Regexp) {
t.Helper()
message := AssertMessage(t, ctx, cfg, &queue.ReceiveParams{
message := AssertMessage(t, cfg, &queue.ReceiveParams{
QueueURL: url,
})
assert.Regexp(t, body, *message.Body)
}
func AssertMessageAttr(t testing.TB, ctx context.Context, cfg serviceconfig.ConfigProvider, url string, name string, value *regexp.Regexp) {
func AssertMessageAttr(t testing.TB, cfg serviceconfig.ConfigProvider, url string, name string, value *regexp.Regexp) {
t.Helper()
message := AssertMessage(t, ctx, cfg, &queue.ReceiveParams{
message := AssertMessage(t, cfg, &queue.ReceiveParams{
QueueURL: url,
Attributes: []string{name},
})
@@ -111,3 +112,55 @@ func AssertMessageAttr(t testing.TB, ctx context.Context, cfg serviceconfig.Conf
assert.NotNil(t, message.MessageAttributes[name])
assert.Regexp(t, value, *(message.MessageAttributes[name]).StringValue)
}
func AssertMessageBodies(t testing.TB, cfg serviceconfig.ConfigProvider, url string, bodies []*regexp.Regexp) {
t.Helper()
timeout := time.After(30 * time.Second)
tick := time.NewTicker(2 * time.Second)
defer tick.Stop()
for {
select {
case <-timeout:
t.Fatal("assert timeout")
case <-tick.C:
slog.Info("receiving from queue")
result, err := cfg.ReceiveFromQueue(t.Context(), &queue.ReceiveParams{
QueueURL: url,
VisibilityTimeout: 1,
WaitTimeSeconds: 1,
})
if err != nil {
continue
} else if len(result.Messages) < 1 {
continue
}
found := true
for _, m := range result.Messages {
foundBody := false
for _, b := range bodies {
log.Print(*m.Body)
if b.MatchString(*m.Body) {
foundBody = true
break
}
}
if !foundBody {
found = false
break
}
}
if !found {
continue
}
return
case <-t.Context().Done():
t.Fatal(t.Context().Err())
}
}
}