Use log capturing helper in TestApply_hooks
Along with the addition of the new arg to the helper for log level customization. Signed-off-by: Yusuke Kuoka <ykuoka@gmail.com>
This commit is contained in:
parent
f09ec18aa9
commit
6b69b31754
|
|
@ -1,14 +1,12 @@
|
|||
package app
|
||||
|
||||
import (
|
||||
"bufio"
|
||||
"bytes"
|
||||
"io"
|
||||
"sync"
|
||||
"testing"
|
||||
|
||||
"github.com/google/go-cmp/cmp"
|
||||
"github.com/variantdev/vals"
|
||||
"go.uber.org/zap"
|
||||
|
||||
"github.com/helmfile/helmfile/pkg/exectest"
|
||||
"github.com/helmfile/helmfile/pkg/helmexec"
|
||||
|
|
@ -54,35 +52,9 @@ func TestApply_hooks(t *testing.T) {
|
|||
ReleasesMutex: &sync.Mutex{},
|
||||
}
|
||||
|
||||
bs := &bytes.Buffer{}
|
||||
|
||||
func() {
|
||||
bs := runWithLogCapture(t, tc.logLevel, func(t *testing.T, logger *zap.SugaredLogger) {
|
||||
t.Helper()
|
||||
|
||||
logReader, logWriter := io.Pipe()
|
||||
|
||||
logFlushed := &sync.WaitGroup{}
|
||||
// Ensure all the log is consumed into `bs` by calling `logWriter.Close()` followed by `logFlushed.Wait()`
|
||||
logFlushed.Add(1)
|
||||
go func() {
|
||||
scanner := bufio.NewScanner(logReader)
|
||||
for scanner.Scan() {
|
||||
bs.Write(scanner.Bytes())
|
||||
bs.WriteString("\n")
|
||||
}
|
||||
logFlushed.Done()
|
||||
}()
|
||||
|
||||
defer func() {
|
||||
// This is here to avoid data-trace on bytes buffer `bs` to capture logs
|
||||
if err := logWriter.Close(); err != nil {
|
||||
panic(err)
|
||||
}
|
||||
logFlushed.Wait()
|
||||
}()
|
||||
|
||||
logger := helmexec.NewLogger(logWriter, tc.logLevel)
|
||||
|
||||
valsRuntime, err := vals.New(vals.Options{CacheSize: 32})
|
||||
if err != nil {
|
||||
t.Errorf("unexpected error creating vals runtime: %v", err)
|
||||
|
|
@ -155,7 +127,7 @@ func TestApply_hooks(t *testing.T) {
|
|||
}
|
||||
}
|
||||
}
|
||||
}()
|
||||
})
|
||||
|
||||
if tc.log != "" {
|
||||
actual := bs.String()
|
||||
|
|
|
|||
|
|
@ -52,7 +52,7 @@ func TestApply_3(t *testing.T) {
|
|||
ReleasesMutex: &sync.Mutex{},
|
||||
}
|
||||
|
||||
bs := runWithLogCapture(t, func(t *testing.T, logger *zap.SugaredLogger) {
|
||||
bs := runWithLogCapture(t, "debug", func(t *testing.T, logger *zap.SugaredLogger) {
|
||||
t.Helper()
|
||||
|
||||
valsRuntime, err := vals.New(vals.Options{CacheSize: 32})
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@ import (
|
|||
"github.com/helmfile/helmfile/pkg/helmexec"
|
||||
)
|
||||
|
||||
func runWithLogCapture(t *testing.T, f func(*testing.T, *zap.SugaredLogger)) *bytes.Buffer {
|
||||
func runWithLogCapture(t *testing.T, logLevel string, f func(*testing.T, *zap.SugaredLogger)) *bytes.Buffer {
|
||||
t.Helper()
|
||||
|
||||
bs := &bytes.Buffer{}
|
||||
|
|
@ -44,7 +44,7 @@ func runWithLogCapture(t *testing.T, f func(*testing.T, *zap.SugaredLogger)) *by
|
|||
logFlushed.Wait()
|
||||
}()
|
||||
|
||||
logger := helmexec.NewLogger(logWriter, "debug")
|
||||
logger := helmexec.NewLogger(logWriter, logLevel)
|
||||
|
||||
f(t, logger)
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue