databricks-cli/cmd/root/progress_logger_test.go

46 lines
1.2 KiB
Go

package root
import (
"context"
"testing"
"github.com/databricks/cli/libs/cmdio"
"github.com/databricks/cli/libs/flags"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
)
func TestInitializeErrorOnIncompatibleConfig(t *testing.T) {
logLevel.Set("info")
logFile.Set("stderr")
progressFormat.Set("inplace")
_, err := initializeProgressLogger(context.Background())
assert.ErrorContains(t, err, "inplace progress logging cannot be used when log-file is stderr")
}
func TestNoErrorOnDisabledLogLevel(t *testing.T) {
logLevel.Set("disabled")
logFile.Set("stderr")
progressFormat.Set("inplace")
_, err := initializeProgressLogger(context.Background())
assert.NoError(t, err)
}
func TestNoErrorOnNonStderrLogFile(t *testing.T) {
logLevel.Set("info")
logFile.Set("stdout")
progressFormat.Set("inplace")
_, err := initializeProgressLogger(context.Background())
assert.NoError(t, err)
}
func TestDefaultLoggerModeResolution(t *testing.T) {
progressFormat = flags.NewProgressLogFormat()
require.Equal(t, progressFormat, flags.ModeDefault)
ctx, err := initializeProgressLogger(context.Background())
require.NoError(t, err)
logger, ok := cmdio.FromContext(ctx)
assert.True(t, ok)
assert.Equal(t, logger.Mode, flags.ModeAppend)
}