diff options
author | Michael Muré <michael.mure@consensys.net> | 2018-11-21 18:56:12 +0100 |
---|---|---|
committer | Michael Muré <batolettre@gmail.com> | 2019-03-01 22:35:36 +0100 |
commit | feab9412dffe5772048aad29893c4cb01d566387 (patch) | |
tree | b7bc9751f2ebdf8d41f5621bbf372eaf7625c4b9 /graphql/graphql_test.go | |
parent | 0aefae6fcca5786f2c898029c3d6282f760f2c63 (diff) | |
download | git-bug-feab9412dffe5772048aad29893c4cb01d566387.tar.gz |
WIP identity in git
Diffstat (limited to 'graphql/graphql_test.go')
-rw-r--r-- | graphql/graphql_test.go | 148 |
1 files changed, 148 insertions, 0 deletions
diff --git a/graphql/graphql_test.go b/graphql/graphql_test.go new file mode 100644 index 00000000..90381987 --- /dev/null +++ b/graphql/graphql_test.go @@ -0,0 +1,148 @@ +package graphql + +import ( + "net/http/httptest" + "testing" + + "github.com/MichaelMure/git-bug/graphql/models" + "github.com/MichaelMure/git-bug/util/test" + "github.com/vektah/gqlgen/client" +) + +func TestQueries(t *testing.T) { + repo := test.CreateFilledRepo(10) + + handler, err := NewHandler(repo) + if err != nil { + t.Fatal(err) + } + + srv := httptest.NewServer(handler) + c := client.New(srv.URL) + + query := ` + query { + defaultRepository { + allBugs(first: 2) { + pageInfo { + endCursor + hasNextPage + startCursor + hasPreviousPage + } + nodes{ + author { + name + email + avatarUrl + } + + createdAt + humanId + id + lastEdit + status + title + + comments(first: 2) { + pageInfo { + endCursor + hasNextPage + startCursor + hasPreviousPage + } + nodes { + files + message + } + } + + operations(first: 20) { + pageInfo { + endCursor + hasNextPage + startCursor + hasPreviousPage + } + nodes { + author { + name + email + avatarUrl + } + date + ... on CreateOperation { + title + message + files + } + ... on SetTitleOperation { + title + was + } + ... on AddCommentOperation { + files + message + } + ... on SetStatusOperation { + status + } + ... on LabelChangeOperation { + added + removed + } + } + } + } + } + } + }` + + type Person struct { + Name string `json:"name"` + Email string `json:"email"` + AvatarUrl string `json:"avatarUrl"` + } + + var resp struct { + DefaultRepository struct { + AllBugs struct { + PageInfo models.PageInfo + Nodes []struct { + Author Person + CreatedAt string `json:"createdAt"` + HumanId string `json:"humanId"` + Id string + LastEdit string `json:"lastEdit"` + Status string + Title string + + Comments struct { + PageInfo models.PageInfo + Nodes []struct { + Files []string + Message string + } + } + + Operations struct { + PageInfo models.PageInfo + Nodes []struct { + Author Person + Date string + Title string + Files []string + Message string + Was string + Status string + Added []string + Removed []string + } + } + } + } + } + } + + c.MustPost(query, &resp) +} |