git-bug/graphql/graphql_test.go

149 lines
3.1 KiB
Go
Raw Normal View History

2018-11-21 20:56:12 +03:00
package graphql
import (
"net/http/httptest"
"testing"
"github.com/MichaelMure/git-bug/graphql/models"
2018-11-21 20:56:12 +03:00
"github.com/MichaelMure/git-bug/util/test"
"github.com/vektah/gqlgen/client"
)
func TestQueries(t *testing.T) {
2018-11-21 20:56:12 +03:00
repo := test.CreateFilledRepo(10)
2018-11-21 20:56:12 +03:00
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)
}