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

Function TestPutRecursive_CreatesEmptyDirectories

cmd/put_test.go:534–592  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

532}
533
534func TestPutRecursive_CreatesEmptyDirectories(t *testing.T) {
535 dir := t.TempDir()
536 if err := os.MkdirAll(filepath.Join(dir, "has-files"), 0755); err != nil {
537 t.Fatal(err)
538 }
539 if err := os.MkdirAll(filepath.Join(dir, "empty"), 0755); err != nil {
540 t.Fatal(err)
541 }
542 if err := os.MkdirAll(filepath.Join(dir, "empty", "nested"), 0755); err != nil {
543 t.Fatal(err)
544 }
545 if err := os.WriteFile(filepath.Join(dir, "has-files", "a.txt"), []byte("a"), 0644); err != nil {
546 t.Fatal(err)
547 }
548
549 var uploaded []string
550 var createdDirs []string
551 origConfig := config
552 defer func() { config = origConfig }()
553
554 config = testConfig()
555 testClient := &mockFilesClient{
556 uploadFn: func(arg *files.UploadArg, content io.Reader) (*files.FileMetadata, error) {
557 uploaded = append(uploaded, arg.Path)
558 return &files.FileMetadata{}, nil
559 },
560 createFolderV2Fn: func(arg *files.CreateFolderArg) (*files.CreateFolderResult, error) {
561 createdDirs = append(createdDirs, arg.Path)
562 return &files.CreateFolderResult{}, nil
563 },
564 }
565 origNew := filesNewFunc
566 filesNewFunc = func(_ dropbox.Config) filesClient { return testClient }
567 defer func() { filesNewFunc = origNew }()
568
569 opts := putOptions{chunkSize: 1 << 24, workers: 4}
570 err := putRecursive(dir, "/dest", opts)
571 if err != nil {
572 t.Fatalf("putRecursive error: %v", err)
573 }
574
575 if len(uploaded) != 1 || uploaded[0] != "/dest/has-files/a.txt" {
576 t.Errorf("uploaded = %v, want [/dest/has-files/a.txt]", uploaded)
577 }
578
579 expectedDirs := map[string]bool{
580 "/dest": true,
581 "/dest/empty": true,
582 "/dest/empty/nested": true,
583 }
584 if len(createdDirs) != len(expectedDirs) {
585 t.Fatalf("created %d dirs, want %d: %v", len(createdDirs), len(expectedDirs), createdDirs)
586 }
587 for _, d := range createdDirs {
588 if !expectedDirs[d] {
589 t.Errorf("unexpected created dir: %s", d)
590 }
591 }

Callers

nothing calls this directly

Calls 2

testConfigFunction · 0.85
putRecursiveFunction · 0.85

Tested by

no test coverage detected