blob: 6404ad3597ec48d8c9aae6d9597f6cca47ddd02a [file] [log] [blame]
package format_test
import (
"testing"
"gotest.tools/v3/assert"
"gotest.tools/v3/internal/format"
)
func TestMessage(t *testing.T) {
var testcases = []struct {
doc string
args []interface{}
expected string
}{
{
doc: "none",
},
{
doc: "single string",
args: args("foo"),
expected: "foo",
},
{
doc: "single non-string",
args: args(123),
expected: "123",
},
{
doc: "format string and args",
args: args("%s %v", "a", 3),
expected: "a 3",
},
}
for _, tc := range testcases {
t.Run(tc.doc, func(t *testing.T) {
assert.Equal(t, format.Message(tc.args...), tc.expected)
})
}
}
func args(a ...interface{}) []interface{} {
return a
}
func TestWithCustomMessage(t *testing.T) {
t.Run("only custom", func(t *testing.T) {
msg := format.WithCustomMessage("", "extra")
assert.Equal(t, msg, "extra")
})
t.Run("only source", func(t *testing.T) {
msg := format.WithCustomMessage("source")
assert.Equal(t, msg, "source")
})
t.Run("source and custom", func(t *testing.T) {
msg := format.WithCustomMessage("source", "extra")
assert.Equal(t, msg, "source: extra")
})
}