MCPcopy Create free account
hub / github.com/exercism/cli / TestSubmitFiles

Function TestSubmitFiles

cmd/submit_test.go:224–280  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

222}
223
224func TestSubmitFiles(t *testing.T) {
225 co := newCapturedOutput()
226 co.override()
227 defer co.reset()
228 Err = &bytes.Buffer{}
229
230 // The fake endpoint will populate this when it receives the call from the command.
231 submittedFiles := map[string]string{}
232 ts := fakeSubmitServer(t, submittedFiles)
233 defer ts.Close()
234
235 tmpDir, err := os.MkdirTemp("", "submit-files")
236 defer os.RemoveAll(tmpDir)
237 assert.NoError(t, err)
238
239 dir := filepath.Join(tmpDir, "bogus-track", "bogus-exercise")
240 os.MkdirAll(filepath.Join(dir, "subdir"), os.FileMode(0755))
241 writeFakeMetadata(t, dir, "bogus-track", "bogus-exercise")
242
243 file1 := filepath.Join(dir, "file-1.txt")
244 err = os.WriteFile(file1, []byte("This is file 1."), os.FileMode(0755))
245 assert.NoError(t, err)
246
247 file2 := filepath.Join(dir, "subdir", "file-2.txt")
248 err = os.WriteFile(file2, []byte("This is file 2."), os.FileMode(0755))
249 assert.NoError(t, err)
250
251 // We don't filter *.md files if you explicitly pass the file path.
252 readme := filepath.Join(dir, "README.md")
253 err = os.WriteFile(readme, []byte("This is the readme."), os.FileMode(0755))
254 assert.NoError(t, err)
255
256 v := viper.New()
257 v.Set("token", "abc123")
258 v.Set("workspace", tmpDir)
259 v.Set("apibaseurl", ts.URL)
260
261 cfg := config.Config{
262 Persister: config.InMemoryPersister{},
263 Dir: tmpDir,
264 UserViperConfig: v,
265 }
266
267 files := []string{
268 file1, file2, readme,
269 }
270
271 err = runSubmit(cfg, pflag.NewFlagSet("fake", pflag.PanicOnError), files)
272
273 if assert.NoError(t, err) {
274 assert.Equal(t, 3, len(submittedFiles))
275 assert.Equal(t, "This is file 1.", submittedFiles["file-1.txt"])
276 assert.Equal(t, "This is file 2.", submittedFiles["subdir/file-2.txt"])
277 assert.Equal(t, "This is the readme.", submittedFiles["README.md"])
278 assert.Regexp(t, "submitted successfully", Err)
279 }
280}
281

Callers

nothing calls this directly

Calls 6

newCapturedOutputFunction · 0.85
fakeSubmitServerFunction · 0.85
writeFakeMetadataFunction · 0.85
runSubmitFunction · 0.85
overrideMethod · 0.80
resetMethod · 0.80

Tested by

no test coverage detected