MCPcopy Create free account
hub / github.com/dropbox/dbxcli / TestGetRecursive_HandlesPagination

Function TestGetRecursive_HandlesPagination

cmd/get_test.go:408–452  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

406}
407
408func TestGetRecursive_HandlesPagination(t *testing.T) {
409 tmpDir := t.TempDir()
410 dst := filepath.Join(tmpDir, "output")
411
412 mock := &mockFilesClient{
413 listFolderFn: func(arg *files.ListFolderArg) (*files.ListFolderResult, error) {
414 return &files.ListFolderResult{
415 Entries: []files.IsMetadata{
416 &files.FileMetadata{Metadata: files.Metadata{PathDisplay: "/remote/a.txt"}, Size: 1},
417 },
418 HasMore: true,
419 Cursor: "page2",
420 }, nil
421 },
422 listFolderContinueFn: func(arg *files.ListFolderContinueArg) (*files.ListFolderResult, error) {
423 if arg.Cursor != "page2" {
424 t.Errorf("cursor = %q, want page2", arg.Cursor)
425 }
426 return &files.ListFolderResult{
427 Entries: []files.IsMetadata{
428 &files.FileMetadata{Metadata: files.Metadata{PathDisplay: "/remote/b.txt"}, Size: 1},
429 },
430 HasMore: false,
431 }, nil
432 },
433 downloadFn: func(arg *files.DownloadArg) (*files.FileMetadata, io.ReadCloser, error) {
434 meta := &files.FileMetadata{
435 Metadata: files.Metadata{PathDisplay: arg.Path},
436 Size: 1,
437 }
438 return meta, io.NopCloser(strings.NewReader("x")), nil
439 },
440 }
441
442 err := getRecursive(mock, "/remote", dst)
443 if err != nil {
444 t.Fatalf("getRecursive error: %v", err)
445 }
446
447 for _, name := range []string{"a.txt", "b.txt"} {
448 if _, err := os.Stat(filepath.Join(dst, name)); err != nil {
449 t.Errorf("file %s not downloaded: %v", name, err)
450 }
451 }
452}
453
454func TestGetRecursive_ReportsDownloadErrors(t *testing.T) {
455 tmpDir := t.TempDir()

Callers

nothing calls this directly

Calls 1

getRecursiveFunction · 0.85

Tested by

no test coverage detected