MCPcopy Index your code
hub / github.com/coder/coder / TestTrailingNewlineWarnings

Function TestTrailingNewlineWarnings

cli/secret_internal_test.go:65–109  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

63}
64
65func TestTrailingNewlineWarnings(t *testing.T) {
66 t.Parallel()
67
68 t.Run("WarnSuspiciousValue", func(t *testing.T) {
69 t.Parallel()
70
71 var stderr bytes.Buffer
72 warnSuspiciousTrailingNewline(&stderr, "token\n")
73 require.Contains(t, stderr.String(), "secret value from stdin ends with a trailing newline")
74 })
75
76 t.Run("DoesNotWarnForMultiline", func(t *testing.T) {
77 t.Parallel()
78
79 var stderr bytes.Buffer
80 warnSuspiciousTrailingNewline(&stderr, "line1\nline2\n")
81 require.Empty(t, stderr.String())
82 })
83
84 t.Run("SecretValueWarnsAndPreservesValue", func(t *testing.T) {
85 t.Parallel()
86
87 var stderr bytes.Buffer
88 inv := newSecretTestInvocation(t, strings.NewReader("token\n"), &stderr)
89
90 got, ok, err := secretValue(inv, "")
91 require.NoError(t, err)
92 require.True(t, ok)
93 require.Equal(t, "token\n", got)
94 require.Contains(t, stderr.String(), "secret value from stdin ends with a trailing newline")
95 })
96
97 t.Run("SecretValueDoesNotWarnForMultiline", func(t *testing.T) {
98 t.Parallel()
99
100 var stderr bytes.Buffer
101 inv := newSecretTestInvocation(t, strings.NewReader("line1\nline2\n"), &stderr)
102
103 got, ok, err := secretValue(inv, "")
104 require.NoError(t, err)
105 require.True(t, ok)
106 require.Equal(t, "line1\nline2\n", got)
107 require.Empty(t, stderr.String())
108 })
109}
110
111func newSecretTestInvocation(t *testing.T, stdin io.Reader, stderr io.Writer) *serpent.Invocation {
112 t.Helper()

Callers

nothing calls this directly

Calls 8

newSecretTestInvocationFunction · 0.85
secretValueFunction · 0.85
RunMethod · 0.65
ContainsMethod · 0.45
StringMethod · 0.45
EmptyMethod · 0.45
EqualMethod · 0.45

Tested by

no test coverage detected