(t *testing.T)
| 222 | } |
| 223 | |
| 224 | func 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 |
nothing calls this directly
no test coverage detected