Fix test pipeline
All checks were successful
Build Docker and Deploy / Build Docker Container (push) Successful in 1m17s
Build Docker and Deploy / Run Unit-Tests (push) Successful in 2m38s
Build Docker and Deploy / Deploy to Server (push) Successful in 9s

This commit is contained in:
2024-09-20 20:56:22 +02:00
parent d21d775764
commit 7546c2a1a4
10 changed files with 68 additions and 45 deletions

View File

@@ -12,7 +12,17 @@ func InitTests() {
log.Logger = createLogger(createConsoleWriter())
gin.SetMode(gin.TestMode)
zerolog.SetGlobalLevel(zerolog.DebugLevel)
if llstr, ok := os.LookupEnv("SCN_TEST_LOGLEVEL"); ok {
ll, err := zerolog.ParseLevel(llstr)
if err != nil {
panic(err)
}
zerolog.SetGlobalLevel(ll)
} else {
zerolog.SetGlobalLevel(zerolog.DebugLevel)
}
}
func createConsoleWriter() *zerolog.ConsoleWriter {

View File

@@ -3,6 +3,7 @@ package util
import (
"fmt"
"github.com/gin-gonic/gin"
"github.com/rs/zerolog"
"github.com/rs/zerolog/log"
)
@@ -27,18 +28,22 @@ func ClearBufLogger(dump bool) {
}
}
func TPrintf(format string, a ...any) {
if buflogger != nil {
buflogger.Printf(format, a...)
} else {
fmt.Printf(format, a...)
func TPrintf(lvl zerolog.Level, format string, a ...any) {
if zerolog.GlobalLevel() <= lvl {
if buflogger != nil {
buflogger.Printf(format, a...)
} else {
fmt.Printf(format, a...)
}
}
}
func TPrintln(a ...any) {
if buflogger != nil {
buflogger.Println(a...)
} else {
fmt.Println(a...)
func TPrintln(lvl zerolog.Level, a ...any) {
if zerolog.GlobalLevel() <= lvl {
if buflogger != nil {
buflogger.Println(a...)
} else {
fmt.Println(a...)
}
}
}

View File

@@ -6,6 +6,7 @@ import (
"encoding/json"
"fmt"
"github.com/gin-gonic/gin"
"github.com/rs/zerolog"
"gogs.mikescher.com/BlackForestBytes/goext/langext"
"io"
"mime/multipart"
@@ -101,7 +102,7 @@ func RequestAuthDeleteShouldFail(t *testing.T, akey string, baseURL string, urlS
func RequestAny[TResult any](t *testing.T, akey string, method string, baseURL string, urlSuffix string, body any, deserialize bool) TResult {
client := http.Client{}
TPrintf("[-> REQUEST] (%s) %s%s [%s] [%s]\n", method, baseURL, urlSuffix, langext.Conditional(akey == "", "NO AUTH", "AUTH"), langext.Conditional(body == nil, "NO BODY", "BODY"))
TPrintf(zerolog.InfoLevel, "[-> REQUEST] (%s) %s%s [%s] [%s]\n", method, baseURL, urlSuffix, langext.Conditional(akey == "", "NO AUTH", "AUTH"), langext.Conditional(body == nil, "NO BODY", "BODY"))
bytesbody := make([]byte, 0)
contentType := ""
@@ -159,16 +160,16 @@ func RequestAny[TResult any](t *testing.T, akey string, method string, baseURL s
TestFailErr(t, err)
}
TPrintln("")
TPrintf("---------------- RESPONSE (%d) ----------------\n", resp.StatusCode)
TPrintln(zerolog.DebugLevel, "")
TPrintf(zerolog.DebugLevel, "---------------- RESPONSE (%d) ----------------\n", resp.StatusCode)
if len(respBodyBin) > 100_000 {
TPrintln("[[RESPONSE TOO LONG]]")
TPrintln(zerolog.DebugLevel, "[[RESPONSE TOO LONG]]")
} else {
TPrintln(langext.TryPrettyPrintJson(string(respBodyBin)))
TPrintln(zerolog.DebugLevel, langext.TryPrettyPrintJson(string(respBodyBin)))
}
TryPrintTraceObj("---------------- -------- ----------------", respBodyBin, "")
TPrintln("---------------- -------- ----------------")
TPrintln("")
TryPrintTraceObj(zerolog.DebugLevel, "---------------- -------- ----------------", respBodyBin, "")
TPrintln(zerolog.DebugLevel, "---------------- -------- ----------------")
TPrintln(zerolog.DebugLevel, "")
if resp.StatusCode != 200 {
TestFailFmt(t, "Statuscode != 200 (actual = %d)", resp.StatusCode)
@@ -195,7 +196,7 @@ func RequestAny[TResult any](t *testing.T, akey string, method string, baseURL s
func RequestAuthAnyShouldFail(t *testing.T, akey string, method string, baseURL string, urlSuffix string, body any, expectedStatusCode int, errcode apierr.APIError) {
client := http.Client{}
TPrintf("[-> REQUEST] (%s) %s%s [%s] (should-fail with %d/%d)\n", method, baseURL, urlSuffix, langext.Conditional(akey == "", "NO AUTH", "AUTH"), expectedStatusCode, errcode)
TPrintf(zerolog.InfoLevel, "[-> REQUEST] (%s) %s%s [%s] (should-fail with %d/%d)\n", method, baseURL, urlSuffix, langext.Conditional(akey == "", "NO AUTH", "AUTH"), expectedStatusCode, errcode)
bytesbody := make([]byte, 0)
contentType := ""
@@ -250,14 +251,14 @@ func RequestAuthAnyShouldFail(t *testing.T, akey string, method string, baseURL
TestFailErr(t, err)
}
TPrintln("")
TPrintf("---------------- RESPONSE (%d) ----------------\n", resp.StatusCode)
TPrintln(langext.TryPrettyPrintJson(string(respBodyBin)))
TPrintln(zerolog.DebugLevel, "")
TPrintf(zerolog.DebugLevel, "---------------- RESPONSE (%d) ----------------\n", resp.StatusCode)
TPrintln(zerolog.DebugLevel, langext.TryPrettyPrintJson(string(respBodyBin)))
if (expectedStatusCode != 0 && resp.StatusCode != expectedStatusCode) || (expectedStatusCode == 0 && resp.StatusCode == 200) {
TryPrintTraceObj("---------------- -------- ----------------", respBodyBin, "")
TryPrintTraceObj(zerolog.DebugLevel, "---------------- -------- ----------------", respBodyBin, "")
}
TPrintln("---------------- -------- ----------------")
TPrintln("")
TPrintln(zerolog.DebugLevel, "---------------- -------- ----------------")
TPrintln(zerolog.DebugLevel, "")
if expectedStatusCode != 0 && resp.StatusCode != expectedStatusCode {
TestFailFmt(t, "Statuscode != %d (expected failure, but got %d)", expectedStatusCode, resp.StatusCode)
@@ -290,19 +291,19 @@ func RequestAuthAnyShouldFail(t *testing.T, akey string, method string, baseURL
}
}
func TryPrintTraceObj(prefix string, body []byte, suffix string) {
func TryPrintTraceObj(lvl zerolog.Level, prefix string, body []byte, suffix string) {
v1 := gin.H{}
if err := json.Unmarshal(body, &v1); err == nil {
if v2, ok := v1["traceObj"]; ok {
if v3, ok := v2.(string); ok {
if prefix != "" {
TPrintln(prefix)
TPrintln(lvl, prefix)
}
TPrintln(strings.TrimSpace(v3))
TPrintln(lvl, strings.TrimSpace(v3))
if suffix != "" {
TPrintln(suffix)
TPrintln(lvl, suffix)
}
}
}

View File

@@ -7,6 +7,7 @@ import (
"blackforestbytes.com/simplecloudnotifier/jobs"
"blackforestbytes.com/simplecloudnotifier/logic"
"blackforestbytes.com/simplecloudnotifier/push"
"github.com/rs/zerolog"
"gogs.mikescher.com/BlackForestBytes/goext/ginext"
"gogs.mikescher.com/BlackForestBytes/goext/langext"
"os"
@@ -71,9 +72,9 @@ func StartSimpleWebserver(t *testing.T) (*logic.Application, string, func()) {
TestFailErr(t, err)
}
TPrintln("DatabaseFile<main>: " + dbfile1)
TPrintln("DatabaseFile<requests>: " + dbfile2)
TPrintln("DatabaseFile<logs>: " + dbfile3)
TPrintln(zerolog.InfoLevel, "DatabaseFile<main>: "+dbfile1)
TPrintln(zerolog.InfoLevel, "DatabaseFile<requests>: "+dbfile2)
TPrintln(zerolog.InfoLevel, "DatabaseFile<logs>: "+dbfile3)
scn.Conf = CreateTestConfig(t, dbfile1, dbfile2, dbfile3)
@@ -113,10 +114,10 @@ func StartSimpleWebserver(t *testing.T) (*logic.Application, string, func()) {
}
stop := func() {
t.Logf("Stopping App")
TPrintln(zerolog.InfoLevel, "Stopping App")
app.Stop()
_ = app.IsRunning.WaitWithTimeout(5*time.Second, false)
t.Logf("Stopped App")
TPrintln(zerolog.InfoLevel, "Stopped App")
_ = os.Remove(dbfile1)
_ = os.Remove(dbfile2)
_ = os.Remove(dbfile3)
@@ -186,9 +187,9 @@ func StartSimpleTestspace(t *testing.T) (string, string, string, scn.Config, fun
TestFailErr(t, err)
}
TPrintln("DatabaseFile<main>: " + dbfile1)
TPrintln("DatabaseFile<requests>: " + dbfile2)
TPrintln("DatabaseFile<logs>: " + dbfile3)
TPrintln(zerolog.InfoLevel, "DatabaseFile<main>: "+dbfile1)
TPrintln(zerolog.InfoLevel, "DatabaseFile<requests>: "+dbfile2)
TPrintln(zerolog.InfoLevel, "DatabaseFile<logs>: "+dbfile3)
scn.Conf = CreateTestConfig(t, dbfile1, dbfile2, dbfile3)