feat: allow existing logger from context (#898)

We should reuse an existing context logger if in test context.
This will allow test to setup act with a null logger to assert
log messages.

Co-authored-by: Markus Wolf <[email protected]>

Co-authored-by: Markus Wolf <[email protected]>
This commit is contained in:
Björn BrauerandMarkus Wolf authored and GitHub committed 2021-11-27 17:45:56 +00:00
1 parent f7263399b9
commit 6517d04b9a
2 files changed
+26

No files matched your search

+20
View File
@@ -0,0 +1,20 @@
package common
import (
"context"
)
type testFlagContextKey string
const testFlagContextKeyVal = testFlagContextKey("test-context")
// TestContext returns whether the context has the test flag set
func TestContext(ctx context.Context) bool {
val := ctx.Value(testFlagContextKeyVal)
return val != nil
}
// WithTextContext sets the test flag in the context
func WithTestContext(ctx context.Context) context.Context {
return context.WithValue(ctx, testFlagContextKeyVal, true)
}
+6
View File
@@ -48,6 +48,12 @@ func WithJobLogger(ctx context.Context, jobName string, secrets map[string]strin
nextColor++
logger := logrus.New()
if common.TestContext(ctx) {
fieldLogger := common.Logger(ctx)
if fieldLogger != nil {
logger = fieldLogger.(*logrus.Logger)
}
}
logger.SetFormatter(formatter)
logger.SetOutput(os.Stdout)
logger.SetLevel(logrus.GetLevel())