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

Function TestRestoreJSONOutputsInputAndMetadata

cmd/restore_test.go:140–197  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

138}
139
140func TestRestoreJSONOutputsInputAndMetadata(t *testing.T) {
141 cmd, stdout := testRestoreCmd()
142 setRestoreOutputJSON(t, cmd)
143 var restoreArg *files.RestoreArg
144 clientModified := time.Date(2026, 6, 16, 10, 0, 0, 0, time.UTC)
145 serverModified := time.Date(2026, 6, 17, 12, 30, 0, 0, time.UTC)
146 mock := &mockFilesClient{
147 restoreFn: func(arg *files.RestoreArg) (*files.FileMetadata, error) {
148 restoreArg = arg
149 return &files.FileMetadata{
150 Metadata: files.Metadata{
151 PathDisplay: "/Reports/old.pdf",
152 PathLower: "/reports/old.pdf",
153 },
154 Id: "id:abc",
155 Rev: "current-rev",
156 Size: 123,
157 ClientModified: dropbox.DBXTime(clientModified),
158 ServerModified: dropbox.DBXTime(serverModified),
159 }, nil
160 },
161 }
162 stubFilesClient(t, mock)
163
164 if err := restore(cmd, []string{"/Reports/old.pdf", "target-rev"}); err != nil {
165 t.Fatalf("restore error: %v", err)
166 }
167 if restoreArg == nil || restoreArg.Path != "/Reports/old.pdf" || restoreArg.Rev != "target-rev" {
168 t.Fatalf("restore arg = %#v, want path /Reports/old.pdf and rev target-rev", restoreArg)
169 }
170
171 got := decodeRestoreOutput(t, stdout)
172 if got.Input.Path != "/Reports/old.pdf" || got.Input.Revision != "target-rev" {
173 t.Fatalf("input = %#v, want path and target revision", got.Input)
174 }
175 result := got.Results[0]
176 if result.Status != restoreStatusRestored || result.Kind != restoreKindFile {
177 t.Fatalf("status/kind = %s/%s, want restored/file", result.Status, result.Kind)
178 }
179 if result.Input.Path != "/Reports/old.pdf" || result.Input.Revision != "target-rev" {
180 t.Fatalf("result input = %#v, want path and target revision", result.Input)
181 }
182 if result.Result.Type != "file" || result.Result.PathDisplay != "/Reports/old.pdf" || result.Result.PathLower != "/reports/old.pdf" {
183 t.Fatalf("metadata = %#v, want file path metadata", result.Result)
184 }
185 if result.Result.ID != "id:abc" || result.Result.Rev != "current-rev" {
186 t.Fatalf("metadata = %#v, want returned id and current revision", result.Result)
187 }
188 if result.Result.Size == nil || *result.Result.Size != 123 {
189 t.Fatalf("size = %v, want 123", result.Result.Size)
190 }
191 if result.Result.ServerModified == nil || *result.Result.ServerModified != "2026-06-17T12:30:00Z" {
192 t.Fatalf("server modified = %v, want 2026-06-17T12:30:00Z", result.Result.ServerModified)
193 }
194 if result.Result.ClientModified == nil || *result.Result.ClientModified != "2026-06-16T10:00:00Z" {
195 t.Fatalf("client modified = %v, want 2026-06-16T10:00:00Z", result.Result.ClientModified)
196 }
197}

Callers

nothing calls this directly

Calls 5

testRestoreCmdFunction · 0.85
setRestoreOutputJSONFunction · 0.85
stubFilesClientFunction · 0.85
restoreFunction · 0.85
decodeRestoreOutputFunction · 0.85

Tested by

no test coverage detected