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

Function TestPrepareStoredFile

coderd/x/chatfiles/mime_test.go:129–193  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

127}
128
129func TestPrepareStoredFile(t *testing.T) {
130 t.Parallel()
131
132 t.Run("UsesDetectNameForSubtypeRefinement", func(t *testing.T) {
133 t.Parallel()
134
135 name, mediaType, err := chatfiles.PrepareStoredFile(
136 "payload.txt",
137 "report.json",
138 []byte(`{"ok":true}`),
139 )
140 require.NoError(t, err)
141 require.Equal(t, "payload.txt", name)
142 require.Equal(t, "application/json", mediaType)
143 })
144
145 t.Run("StripsControlCharactersAndTrimsExposedWhitespace", func(t *testing.T) {
146 t.Parallel()
147
148 name, mediaType, err := chatfiles.PrepareStoredFile(
149 "\x00 release\t notes.txt \x00",
150 "release-notes.txt",
151 []byte("hello"),
152 )
153 require.NoError(t, err)
154 require.Equal(t, "release notes.txt", name)
155 require.Equal(t, "text/plain", mediaType)
156 })
157
158 t.Run("RejectsEmptyNormalizedName", func(t *testing.T) {
159 t.Parallel()
160
161 _, _, err := chatfiles.PrepareStoredFile(
162 " \r\n\t ",
163 "notes.txt",
164 []byte("hello"),
165 )
166 require.ErrorIs(t, err, chatfiles.ErrStoredFileNameRequired)
167 })
168
169 t.Run("RejectsUnsupportedStoredFileType", func(t *testing.T) {
170 t.Parallel()
171
172 _, _, err := chatfiles.PrepareStoredFile(
173 "evil.svg",
174 "evil.svg",
175 []byte(`<svg xmlns="http://www.w3.org/2000/svg"><rect/></svg>`),
176 )
177 require.ErrorIs(t, err, chatfiles.ErrUnsupportedStoredFileType)
178 require.ErrorContains(t, err, "image/svg+xml")
179 })
180
181 t.Run("TruncatesNamesAtRuneBoundaries", func(t *testing.T) {
182 t.Parallel()
183
184 name, _, err := chatfiles.PrepareStoredFile(
185 strings.Repeat("界", 100),
186 "notes.txt",

Callers

nothing calls this directly

Calls 3

PrepareStoredFileFunction · 0.92
RunMethod · 0.65
EqualMethod · 0.45

Tested by

no test coverage detected