Skip to content

Commit 521e0ba

Browse files
add additional tests to improve coverage for individual field retrieval API
1 parent 9191d85 commit 521e0ba

File tree

1 file changed

+82
-0
lines changed

1 file changed

+82
-0
lines changed

github/projects_test.go

Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -303,6 +303,88 @@ func TestProjectsService_ListProjectFieldsForUser(t *testing.T) {
303303
}
304304
}
305305

306+
func TestProjectsService_GetProjectFieldForOrg(t *testing.T) {
307+
t.Parallel()
308+
client, mux, _ := setup(t)
309+
310+
mux.HandleFunc("/orgs/o/projectsV2/1/fields/1", func(w http.ResponseWriter, r *http.Request) {
311+
testMethod(t, r, "GET")
312+
fmt.Fprint(w, `
313+
{
314+
"id": 1,
315+
"node_id": "node_1",
316+
"name": "Status",
317+
"dataType": "single_select",
318+
"url": "https://api.github.com/projects/1/fields/field1",
319+
"options": [
320+
{"id": 1, "name": "Todo", "color": "blue", "description": "Tasks to be done"},
321+
{"id": 2, "name": "In Progress", "color": "yellow"}
322+
],
323+
"created_at": "2011-01-02T15:04:05Z",
324+
"updated_at": "2012-01-02T15:04:05Z"
325+
}`)
326+
})
327+
328+
ctx := t.Context()
329+
field, _, err := client.Projects.GetProjectFieldForOrg(ctx, "o", 1, 1)
330+
if err != nil {
331+
t.Fatalf("Projects.GetProjectFieldForOrg returned error: %v", err)
332+
}
333+
if field == nil || field.ID == nil || *field.ID != 1 {
334+
t.Fatalf("unexpected field: %+v", field)
335+
}
336+
337+
const methodName = "GetProjectFieldForOrg"
338+
testNewRequestAndDoFailure(t, methodName, client, func() (*Response, error) {
339+
got, resp, err := client.Projects.GetProjectFieldForOrg(ctx, "o", 1, 1)
340+
if got != nil {
341+
t.Errorf("testNewRequestAndDoFailure %v = %#v, want nil", methodName, got)
342+
}
343+
return resp, err
344+
})
345+
}
346+
347+
func TestProjectsService_GetProjectFieldForUser(t *testing.T) {
348+
t.Parallel()
349+
client, mux, _ := setup(t)
350+
351+
mux.HandleFunc("/users/u/projectsV2/1/fields/3", func(w http.ResponseWriter, r *http.Request) {
352+
testMethod(t, r, "GET")
353+
fmt.Fprint(w, `
354+
{
355+
"id": 3,
356+
"node_id": "node_3",
357+
"name": "Status",
358+
"dataType": "single_select",
359+
"url": "https://api.github.com/projects/1/fields/field3",
360+
"options": [
361+
{"id": 1, "name": "Done", "color": "red", "description": "Done task"},
362+
{"id": 2, "name": "In Progress", "color": "yellow"}
363+
],
364+
"created_at": "2011-01-02T15:04:05Z",
365+
"updated_at": "2012-01-02T15:04:05Z"
366+
}`)
367+
})
368+
369+
ctx := t.Context()
370+
field, _, err := client.Projects.GetProjectFieldForUser(ctx, "u", 1, 3)
371+
if err != nil {
372+
t.Fatalf("Projects.GetProjectFieldForUser returned error: %v", err)
373+
}
374+
if field == nil || field.ID == nil || *field.ID != 3 {
375+
t.Fatalf("unexpected field: %+v", field)
376+
}
377+
378+
const methodName = "GetProjectFieldForUser"
379+
testNewRequestAndDoFailure(t, methodName, client, func() (*Response, error) {
380+
got, resp, err := client.Projects.GetProjectFieldForUser(ctx, "u", 1, 3)
381+
if got != nil {
382+
t.Errorf("testNewRequestAndDoFailure %v = %#v, want nil", methodName, got)
383+
}
384+
return resp, err
385+
})
386+
}
387+
306388
func TestProjectsService_ListProjectsForUser_pagination(t *testing.T) {
307389
t.Parallel()
308390
client, mux, _ := setup(t)

0 commit comments

Comments
 (0)