Skip to content

Commit

Permalink
feat: allow existing logger from context
Browse files Browse the repository at this point in the history
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 <markus.wolf@new-work.se>
  • Loading branch information
ZauberNerd and KnisterPeter committed Nov 26, 2021
1 parent f726339 commit be91b48
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 0 deletions.
20 changes: 20 additions & 0 deletions pkg/common/testflag.go
Original file line number Diff line number Diff line change
@@ -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 changes: 6 additions & 0 deletions pkg/runner/logger.go
Original file line number Diff line number Diff line change
Expand Up @@ -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())
Expand Down

0 comments on commit be91b48

Please sign in to comment.