(t *testing.T)
| 11 | ) |
| 12 | |
| 13 | func TestJSONMetadataFromDropboxFile(t *testing.T) { |
| 14 | clientModified := time.Date(2026, 6, 21, 10, 30, 0, 0, time.FixedZone("test", -7*60*60)) |
| 15 | serverModified := time.Date(2026, 6, 22, 11, 45, 0, 0, time.UTC) |
| 16 | metadata := &files.FileMetadata{ |
| 17 | Metadata: files.Metadata{ |
| 18 | PathDisplay: "/Reports/File.txt", |
| 19 | PathLower: "/reports/file.txt", |
| 20 | }, |
| 21 | Id: "id:abc", |
| 22 | Rev: "rev123", |
| 23 | Size: 0, |
| 24 | ClientModified: dropbox.DBXTime(clientModified), |
| 25 | ServerModified: dropbox.DBXTime(serverModified), |
| 26 | } |
| 27 | |
| 28 | got, err := jsonMetadataFromDropbox(metadata) |
| 29 | if err != nil { |
| 30 | t.Fatal(err) |
| 31 | } |
| 32 | |
| 33 | if got.Type != "file" { |
| 34 | t.Fatalf("Type = %q, want file", got.Type) |
| 35 | } |
| 36 | if got.PathDisplay != "/Reports/File.txt" { |
| 37 | t.Fatalf("PathDisplay = %q", got.PathDisplay) |
| 38 | } |
| 39 | if got.Size == nil || *got.Size != 0 { |
| 40 | t.Fatalf("Size = %v, want pointer to 0", got.Size) |
| 41 | } |
| 42 | if got.ClientModified == nil || *got.ClientModified != "2026-06-21T17:30:00Z" { |
| 43 | t.Fatalf("ClientModified = %v", got.ClientModified) |
| 44 | } |
| 45 | if got.ServerModified == nil || *got.ServerModified != "2026-06-22T11:45:00Z" { |
| 46 | t.Fatalf("ServerModified = %v", got.ServerModified) |
| 47 | } |
| 48 | |
| 49 | encoded, err := json.Marshal(got) |
| 50 | if err != nil { |
| 51 | t.Fatal(err) |
| 52 | } |
| 53 | if strings.Contains(string(encoded), "is_downloadable") { |
| 54 | t.Fatalf("encoded metadata exposes SDK-specific fields: %s", encoded) |
| 55 | } |
| 56 | if strings.Contains(string(encoded), "deleted") { |
| 57 | t.Fatalf("encoded non-deleted metadata should omit deleted field: %s", encoded) |
| 58 | } |
| 59 | } |
| 60 | |
| 61 | func TestJSONMetadataFromDropboxFolder(t *testing.T) { |
| 62 | metadata := &files.FolderMetadata{ |
nothing calls this directly
no test coverage detected