blob: 79c5a5dad3bad01938aa5c9f8aedf6d12574016e [file] [edit]
// Copyright IBM Corp. 2014, 2026
// SPDX-License-Identifier: BUSL-1.1
package ui
import "github.com/hashicorp/cli"
// WrappedUi wraps the primary output cli.Ui, and redirects Warn calls to Output
// calls. This ensures that warnings are sent to stdout, and are properly
// serialized within the stdout stream.
//
// This behaviour matches the behaviour of the new views package,
// which also sends warnings to stdout.
//
// For more context, see: https://github.com/hashicorp/terraform/pull/27057
type WrappedUi struct {
cli.Ui
}
func (u *WrappedUi) Warn(msg string) {
u.Ui.Output(msg)
}
// WrappedMockUi is specifically for use in tests. By wrapping a MockUi, instead of an interface,
// calling code in tests are still able to access MockUi exported fields. This enables access to fields
// such as OutputWriter and ErrorWriter for making assertions about command output.
type WrappedMockUi struct {
*cli.MockUi
}
func (u *WrappedMockUi) Warn(msg string) {
u.MockUi.Output(msg)
}