(t *testing.T)
| 193 | } |
| 194 | |
| 195 | func TestSearchJSONOutputsInputAndResults(t *testing.T) { |
| 196 | cmd, stdout := testSearchCmd() |
| 197 | setSearchOutputJSON(t, cmd) |
| 198 | setSearchFlag(t, cmd, "long", "true") |
| 199 | setSearchFlag(t, cmd, "sort", "name") |
| 200 | setSearchFlag(t, cmd, "reverse", "true") |
| 201 | setSearchFlag(t, cmd, "time", "client") |
| 202 | setSearchFlag(t, cmd, "time-format", "rfc3339") |
| 203 | setSearchFlag(t, cmd, "content", "true") |
| 204 | setSearchFlag(t, cmd, "limit", "2") |
| 205 | setSearchFlag(t, cmd, "order-by", "modified") |
| 206 | var firstArg *files.SearchV2Arg |
| 207 | |
| 208 | mock := &mockFilesClient{ |
| 209 | searchV2Fn: func(arg *files.SearchV2Arg) (*files.SearchV2Result, error) { |
| 210 | firstArg = arg |
| 211 | return files.NewSearchV2Result([]*files.SearchMatchV2{ |
| 212 | searchMatch(&files.FileMetadata{ |
| 213 | Metadata: files.Metadata{ |
| 214 | PathDisplay: "/docs/report.txt", |
| 215 | PathLower: "/docs/report.txt", |
| 216 | }, |
| 217 | Id: "id:file", |
| 218 | Rev: "rev-file", |
| 219 | Size: 42, |
| 220 | }), |
| 221 | searchMatch(&files.FolderMetadata{ |
| 222 | Metadata: files.Metadata{ |
| 223 | PathDisplay: "/docs/archive", |
| 224 | PathLower: "/docs/archive", |
| 225 | }, |
| 226 | Id: "id:folder", |
| 227 | }), |
| 228 | }, false), nil |
| 229 | }, |
| 230 | } |
| 231 | stubFilesClient(t, mock) |
| 232 | |
| 233 | if err := search(cmd, []string{"report", "/docs"}); err != nil { |
| 234 | t.Fatalf("search error: %v", err) |
| 235 | } |
| 236 | if firstArg == nil { |
| 237 | t.Fatal("SearchV2 was not called") |
| 238 | } |
| 239 | if firstArg.Query != "report" { |
| 240 | t.Fatalf("query = %q, want report", firstArg.Query) |
| 241 | } |
| 242 | if firstArg.Options == nil || firstArg.Options.Path != "/docs" { |
| 243 | t.Fatalf("options path = %#v, want /docs", firstArg.Options) |
| 244 | } |
| 245 | if firstArg.Options.FilenameOnly { |
| 246 | t.Fatal("filename_only = true, want false with --content") |
| 247 | } |
| 248 | if firstArg.Options.MaxResults != 2 { |
| 249 | t.Fatalf("max_results = %d, want 2", firstArg.Options.MaxResults) |
| 250 | } |
| 251 | if firstArg.Options.OrderBy == nil || firstArg.Options.OrderBy.Tag != files.SearchOrderByLastModifiedTime { |
| 252 | t.Fatalf("order_by = %#v, want last_modified_time", firstArg.Options.OrderBy) |
nothing calls this directly
no test coverage detected