This commit is contained in:
38
main_test_helpers.go
Normal file
38
main_test_helpers.go
Normal file
@@ -0,0 +1,38 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"testing"
|
||||
)
|
||||
|
||||
// useBufferWriters swaps stdOut/stdErr with in-memory buffers for the duration
|
||||
// of a test, allowing assertions on CLI output without polluting test logs.
|
||||
func useBufferWriters(t *testing.T) {
|
||||
t.Helper()
|
||||
|
||||
outBuf := &bytes.Buffer{}
|
||||
errBuf := &bytes.Buffer{}
|
||||
|
||||
prevOut := stdOut
|
||||
prevErr := stdErr
|
||||
|
||||
stdOut = outBuf
|
||||
stdErr = errBuf
|
||||
|
||||
t.Cleanup(func() {
|
||||
stdOut = prevOut
|
||||
stdErr = prevErr
|
||||
})
|
||||
}
|
||||
|
||||
// stdOutBuffer returns the in-use stdout buffer when useBufferWriters is active.
|
||||
func stdOutBuffer() *bytes.Buffer {
|
||||
buf, _ := stdOut.(*bytes.Buffer)
|
||||
return buf
|
||||
}
|
||||
|
||||
// stdErrBuffer returns the in-use stderr buffer when useBufferWriters is active.
|
||||
func stdErrBuffer() *bytes.Buffer {
|
||||
buf, _ := stdErr.(*bytes.Buffer)
|
||||
return buf
|
||||
}
|
||||
Reference in New Issue
Block a user