(t *testing.T)
| 459 | } |
| 460 | |
| 461 | func TestSubmitFilesFromDifferentSolutions(t *testing.T) { |
| 462 | tmpDir, err := os.MkdirTemp("", "dir-1-submit") |
| 463 | defer os.RemoveAll(tmpDir) |
| 464 | assert.NoError(t, err) |
| 465 | |
| 466 | dir1 := filepath.Join(tmpDir, "bogus-track", "bogus-exercise-1") |
| 467 | os.MkdirAll(dir1, os.FileMode(0755)) |
| 468 | writeFakeMetadata(t, dir1, "bogus-track", "bogus-exercise-1") |
| 469 | |
| 470 | dir2 := filepath.Join(tmpDir, "bogus-track", "bogus-exercise-2") |
| 471 | os.MkdirAll(dir2, os.FileMode(0755)) |
| 472 | writeFakeMetadata(t, dir2, "bogus-track", "bogus-exercise-2") |
| 473 | |
| 474 | file1 := filepath.Join(dir1, "file-1.txt") |
| 475 | err = os.WriteFile(file1, []byte("This is file 1."), os.FileMode(0755)) |
| 476 | assert.NoError(t, err) |
| 477 | |
| 478 | file2 := filepath.Join(dir2, "file-2.txt") |
| 479 | err = os.WriteFile(file2, []byte("This is file 2."), os.FileMode(0755)) |
| 480 | assert.NoError(t, err) |
| 481 | |
| 482 | v := viper.New() |
| 483 | v.Set("token", "abc123") |
| 484 | v.Set("workspace", tmpDir) |
| 485 | v.Set("apibaseurl", "http://api.example.com") |
| 486 | |
| 487 | cfg := config.Config{ |
| 488 | Persister: config.InMemoryPersister{}, |
| 489 | Dir: tmpDir, |
| 490 | UserViperConfig: v, |
| 491 | } |
| 492 | |
| 493 | err = runSubmit(cfg, pflag.NewFlagSet("fake", pflag.PanicOnError), []string{file1, file2}) |
| 494 | if assert.Error(t, err) { |
| 495 | assert.Regexp(t, "different solutions", err.Error()) |
| 496 | } |
| 497 | } |
| 498 | |
| 499 | func fakeSubmitServer(t *testing.T, submittedFiles map[string]string) *httptest.Server { |
| 500 | handler := http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { |
nothing calls this directly
no test coverage detected