Skip to content

Commit

Permalink
Adjust go.mod file to look in parent directories as well
Browse files Browse the repository at this point in the history
Signed-off-by: Steve Coffman <steve@khanacademy.org>
  • Loading branch information
StevenACoffman committed Nov 25, 2022
1 parent e616112 commit 9e25d9d
Show file tree
Hide file tree
Showing 156 changed files with 2,656 additions and 903 deletions.
10 changes: 6 additions & 4 deletions _examples/chat/chat_test.go
Expand Up @@ -2,13 +2,14 @@ package chat

import (
"fmt"
"runtime"
"sync"
"testing"

"github.com/99designs/gqlgen/client"
"github.com/99designs/gqlgen/graphql/handler"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"runtime"
"sync"
"testing"
)

func TestChatSubscriptions(t *testing.T) {
Expand Down Expand Up @@ -68,7 +69,8 @@ func TestChatSubscriptions(t *testing.T) {
}
wg.Wait()

// 1 for the main thread, 1 for the testing package and remainder is reserved for the HTTP server threads
// 1 for the main thread, 1 for the testing package and remainder is reserved for the HTTP
// server threads
// TODO: use something like runtime.Stack to filter out HTTP server threads,
// TODO: which is required for proper concurrency and leaks testing
require.Less(t, runtime.NumGoroutine(), 1+1+batchSize*2, "goroutine leak")
Expand Down
12 changes: 10 additions & 2 deletions _examples/chat/resolvers.go
Expand Up @@ -62,7 +62,12 @@ type Chatroom struct {

type mutationResolver struct{ *resolver }

func (r *mutationResolver) Post(ctx context.Context, text string, username string, roomName string) (*Message, error) {
func (r *mutationResolver) Post(
ctx context.Context,
text string,
username string,
roomName string,
) (*Message, error) {
room := r.getRoom(roomName)

message := &Message{
Expand Down Expand Up @@ -99,7 +104,10 @@ func (r *queryResolver) Room(ctx context.Context, name string) (*Chatroom, error

type subscriptionResolver struct{ *resolver }

func (r *subscriptionResolver) MessageAdded(ctx context.Context, roomName string) (<-chan *Message, error) {
func (r *subscriptionResolver) MessageAdded(
ctx context.Context,
roomName string,
) (<-chan *Message, error) {
room := r.getRoom(roomName)

id := randString(8)
Expand Down
6 changes: 4 additions & 2 deletions _examples/config/schema.resolvers.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

15 changes: 12 additions & 3 deletions _examples/dataloader/dataloader_test.go
Expand Up @@ -10,7 +10,11 @@ import (
)

func TestTodo(t *testing.T) {
c := client.New(LoaderMiddleware(handler.NewDefaultServer(NewExecutableSchema(Config{Resolvers: &Resolver{}}))))
c := client.New(
LoaderMiddleware(
handler.NewDefaultServer(NewExecutableSchema(Config{Resolvers: &Resolver{}})),
),
)

t.Run("create a new todo", func(t *testing.T) {
var resp interface{}
Expand Down Expand Up @@ -44,7 +48,8 @@ func TestTodo(t *testing.T) {
}, resp.Torture2d)
})

// Input coercion on arrays should convert non array values into an array of the appropriate depth
// Input coercion on arrays should convert non array values into an array of the appropriate
// depth
// http://facebook.github.io/graphql/June2018/#sec-Type-System.List
t.Run("array coercion", func(t *testing.T) {
t.Run("1d", func(t *testing.T) {
Expand Down Expand Up @@ -82,6 +87,10 @@ func TestTodo(t *testing.T) {
}
err := c.Post(`{ torture2d(customerIds:{}) { id name } }`, &resp)

require.EqualError(t, err, "[{\"message\":\"map[string]interface {} is not an int\",\"path\":[\"torture2d\",\"customerIds\",0,0]}]")
require.EqualError(
t,
err,
"[{\"message\":\"map[string]interface {} is not an int\",\"path\":[\"torture2d\",\"customerIds\",0,0]}]",
)
})
}
27 changes: 22 additions & 5 deletions _examples/dataloader/dataloaders.go
Expand Up @@ -48,7 +48,10 @@ func LoaderMiddleware(next http.Handler) http.Handler {
addresses := make([]*Address, len(keys))
errors := make([]error, len(keys))
for i, key := range keys {
addresses[i] = &Address{Street: "home street", Country: "hometon " + strconv.Itoa(key)}
addresses[i] = &Address{
Street: "home street",
Country: "hometon " + strconv.Itoa(key),
}
}
return addresses, errors
},
Expand All @@ -64,16 +67,27 @@ func LoaderMiddleware(next http.Handler) http.Handler {
keySql = append(keySql, strconv.Itoa(key))
}

fmt.Printf("SELECT * FROM orders WHERE customer_id IN (%s)\n", strings.Join(keySql, ","))
fmt.Printf(
"SELECT * FROM orders WHERE customer_id IN (%s)\n",
strings.Join(keySql, ","),
)
time.Sleep(5 * time.Millisecond)

orders := make([][]*Order, len(keys))
errors := make([]error, len(keys))
for i, key := range keys {
id := 10 + rand.Int()%3
orders[i] = []*Order{
{ID: id, Amount: rand.Float64(), Date: time.Now().Add(-time.Duration(key) * time.Hour)},
{ID: id + 1, Amount: rand.Float64(), Date: time.Now().Add(-time.Duration(key) * time.Hour)},
{
ID: id,
Amount: rand.Float64(),
Date: time.Now().Add(-time.Duration(key) * time.Hour),
},
{
ID: id + 1,
Amount: rand.Float64(),
Date: time.Now().Add(-time.Duration(key) * time.Hour),
},
}

// if you had another customer loader you would prime its cache here
Expand All @@ -94,7 +108,10 @@ func LoaderMiddleware(next http.Handler) http.Handler {
keySql = append(keySql, strconv.Itoa(key))
}

fmt.Printf("SELECT * FROM items JOIN item_order WHERE item_order.order_id IN (%s)\n", strings.Join(keySql, ","))
fmt.Printf(
"SELECT * FROM items JOIN item_order WHERE item_order.order_id IN (%s)\n",
strings.Join(keySql, ","),
)
time.Sleep(5 * time.Millisecond)

items := make([][]*Item, len(keys))
Expand Down
6 changes: 5 additions & 1 deletion _examples/dataloader/resolvers.go
Expand Up @@ -82,7 +82,11 @@ func (r *queryResolver) Torture2d(ctx context.Context, customerIds [][]int) ([][
for i := range customerIds {
inner := make([]*Customer, len(customerIds[i]))
for j := range customerIds[i] {
inner[j] = &Customer{ID: customerIds[i][j], Name: fmt.Sprintf("%d %d", i, j), AddressID: rand.Int() % 10}
inner[j] = &Customer{
ID: customerIds[i][j],
Name: fmt.Sprintf("%d %d", i, j),
AddressID: rand.Int() % 10,
}
}
result[i] = inner
}
Expand Down
6 changes: 5 additions & 1 deletion _examples/embedding/subdir/embedding_test.go
Expand Up @@ -29,7 +29,11 @@ func TestEmbeddingWorks(t *testing.T) {
}

func TestEmbeddingWorksInGendir(t *testing.T) {
c := client.New(handler.NewDefaultServer(gendir.NewExecutableSchema(gendir.Config{Resolvers: &GendirResolver{}})))
c := client.New(
handler.NewDefaultServer(
gendir.NewExecutableSchema(gendir.Config{Resolvers: &GendirResolver{}}),
),
)
var resp struct {
InSchemadir string
Parentdir string
Expand Down
3 changes: 3 additions & 0 deletions _examples/embedding/subdir/resolvers.go
Expand Up @@ -14,12 +14,15 @@ type Resolver struct{ *Resolver }
func (q *Resolver) Query() QueryResolver {
return q
}

func (q *Resolver) InSchemadir(ctx context.Context) (string, error) {
return "example", nil
}

func (q *Resolver) Parentdir(ctx context.Context) (string, error) {
return "example", nil
}

func (q *Resolver) Subdir(ctx context.Context) (string, error) {
return "example", nil
}
Expand Down
4 changes: 3 additions & 1 deletion _examples/federation/accounts/server.go
Expand Up @@ -21,7 +21,9 @@ func main() {
port = defaultPort
}

srv := handler.NewDefaultServer(generated.NewExecutableSchema(generated.Config{Resolvers: &graph.Resolver{}}))
srv := handler.NewDefaultServer(
generated.NewExecutableSchema(generated.Config{Resolvers: &graph.Resolver{}}),
)
srv.Use(&debug.Tracer{})

http.Handle("/", playground.Handler("GraphQL playground", "/query"))
Expand Down
4 changes: 3 additions & 1 deletion _examples/federation/products/server.go
Expand Up @@ -21,7 +21,9 @@ func main() {
port = defaultPort
}

srv := handler.NewDefaultServer(generated.NewExecutableSchema(generated.Config{Resolvers: &graph.Resolver{}}))
srv := handler.NewDefaultServer(
generated.NewExecutableSchema(generated.Config{Resolvers: &graph.Resolver{}}),
)
srv.Use(&debug.Tracer{})

http.Handle("/", playground.Handler("GraphQL playground", "/query"))
Expand Down
4 changes: 3 additions & 1 deletion _examples/federation/reviews/server.go
Expand Up @@ -21,7 +21,9 @@ func main() {
port = defaultPort
}

srv := handler.NewDefaultServer(generated.NewExecutableSchema(generated.Config{Resolvers: &graph.Resolver{}}))
srv := handler.NewDefaultServer(
generated.NewExecutableSchema(generated.Config{Resolvers: &graph.Resolver{}}),
)
srv.Use(&debug.Tracer{})

http.Handle("/", playground.Handler("GraphQL playground", "/query"))
Expand Down
30 changes: 25 additions & 5 deletions _examples/fileupload/fileupload_test.go
Expand Up @@ -18,7 +18,9 @@ import (

func TestFileUpload(t *testing.T) {
resolver := &Stub{}
srv := httptest.NewServer(handler.NewDefaultServer(NewExecutableSchema(Config{Resolvers: resolver})))
srv := httptest.NewServer(
handler.NewDefaultServer(NewExecutableSchema(Config{Resolvers: resolver})),
)
defer srv.Close()
gql := gqlclient.New(srv.Config.Handler, gqlclient.Path("/graphql"))

Expand Down Expand Up @@ -98,7 +100,12 @@ func TestFileUpload(t *testing.T) {
SingleUploadWithPayload *model.File
}

err := gql.Post(mutation, &result, gqlclient.Var("req", map[string]interface{}{"id": 1, "file": aTxtFile}), gqlclient.WithFiles())
err := gql.Post(
mutation,
&result,
gqlclient.Var("req", map[string]interface{}{"id": 1, "file": aTxtFile}),
gqlclient.WithFiles(),
)
require.Nil(t, err)
require.Equal(t, 1, result.SingleUploadWithPayload.ID)
require.Contains(t, result.SingleUploadWithPayload.Name, "a.txt")
Expand Down Expand Up @@ -139,7 +146,12 @@ func TestFileUpload(t *testing.T) {
MultipleUpload []*model.File
}

err := gql.Post(mutation, &result, gqlclient.Var("files", []*os.File{a1TxtFile, b1TxtFile}), gqlclient.WithFiles())
err := gql.Post(
mutation,
&result,
gqlclient.Var("files", []*os.File{a1TxtFile, b1TxtFile}),
gqlclient.WithFiles(),
)
require.Nil(t, err)
require.Equal(t, 1, result.MultipleUpload[0].ID)
require.Equal(t, 2, result.MultipleUpload[1].ID)
Expand Down Expand Up @@ -274,11 +286,19 @@ func TestFileUpload(t *testing.T) {
require.Equal(t, 1, result.MultipleUploadWithPayload[0].ID)
require.Contains(t, result.MultipleUploadWithPayload[0].Name, "a.txt")
require.Equal(t, "test1", result.MultipleUploadWithPayload[0].Content)
require.Equal(t, "text/plain; charset=utf-8", result.MultipleUploadWithPayload[0].ContentType)
require.Equal(
t,
"text/plain; charset=utf-8",
result.MultipleUploadWithPayload[0].ContentType,
)
require.Equal(t, 2, result.MultipleUploadWithPayload[1].ID)
require.Contains(t, result.MultipleUploadWithPayload[1].Name, "a.txt")
require.Equal(t, "test1", result.MultipleUploadWithPayload[1].Content)
require.Equal(t, "text/plain; charset=utf-8", result.MultipleUploadWithPayload[1].ContentType)
require.Equal(
t,
"text/plain; charset=utf-8",
result.MultipleUploadWithPayload[1].ContentType,
)
}

t.Run("payload smaller than UploadMaxMemory, stored in memory", func(t *testing.T) {
Expand Down
4 changes: 3 additions & 1 deletion _examples/fileupload/server/server.go
Expand Up @@ -24,7 +24,9 @@ func main() {

var mb int64 = 1 << 20

srv := handler.NewDefaultServer(fileupload.NewExecutableSchema(fileupload.Config{Resolvers: resolver}))
srv := handler.NewDefaultServer(
fileupload.NewExecutableSchema(fileupload.Config{Resolvers: resolver}),
)
srv.AddTransport(transport.POST{})
srv.AddTransport(transport.MultipartForm{
MaxMemory: 32 * mb,
Expand Down
2 changes: 1 addition & 1 deletion _examples/go.mod
Expand Up @@ -23,6 +23,6 @@ require (
github.com/pkg/errors v0.9.1 // indirect
github.com/shurcooL/httpfs v0.0.0-20190707220628-8d4bc4ba7749 // indirect
github.com/shurcooL/vfsgen v0.0.0-20200824052919-0d455de96546 // indirect
golang.org/x/text v0.3.7
golang.org/x/text v0.3.8
sourcegraph.com/sourcegraph/appdash-data v0.0.0-20151005221446-73f23eafcf67 // indirect
)
3 changes: 2 additions & 1 deletion _examples/go.sum
Expand Up @@ -133,8 +133,9 @@ golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuX
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
golang.org/x/text v0.3.7 h1:olpwvP2KacW1ZWvsR7uQhoyTYvKAupfQrRGBFM352Gk=
golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
golang.org/x/text v0.3.8 h1:nAL+RVCQ9uMn3vJZbV+MRnydTJFPf8qqY42YiA6MrqY=
golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ=
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
golang.org/x/tools v0.0.0-20190515012406-7d7faa4812bd/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
Expand Down
9 changes: 6 additions & 3 deletions _examples/scalars/model/model.go
Expand Up @@ -80,15 +80,17 @@ func (p Point) MarshalGQL(w io.Writer) {
fmt.Fprintf(w, `"%d,%d"`, p.X, p.Y)
}

// if the type referenced in .gqlgen.yml is a function that returns a marshaller we can use it to encode and decode
// if the type referenced in .gqlgen.yml is a function that returns a marshaller we can use it to
// encode and decode
// onto any existing go type.
func MarshalTimestamp(t time.Time) graphql.Marshaler {
return graphql.WriterFunc(func(w io.Writer) {
io.WriteString(w, strconv.FormatInt(t.Unix(), 10))
})
}

// Unmarshal{Typename} is only required if the scalar appears as an input. The raw values have already been decoded
// Unmarshal{Typename} is only required if the scalar appears as an input. The raw values have
// already been decoded
// from json into int/float64/bool/nil/map[string]interface/[]interface
func UnmarshalTimestamp(v interface{}) (time.Time, error) {
if tmpStr, ok := v.(int64); ok {
Expand Down Expand Up @@ -120,7 +122,8 @@ type SearchArgs struct {
IsBanned Banned
}

// A custom enum that uses integers to represent the values in memory but serialize as string for graphql
// A custom enum that uses integers to represent the values in memory but serialize as string for
// graphql
type Tier uint

const (
Expand Down
11 changes: 9 additions & 2 deletions _examples/scalars/resolvers.go
Expand Up @@ -23,7 +23,11 @@ func (r *Resolver) User() UserResolver {

type queryResolver struct{ *Resolver }

func (r *queryResolver) UserByTier(ctx context.Context, tier model.Tier, darkMode *model.Prefs) ([]*model.User, error) {
func (r *queryResolver) UserByTier(
ctx context.Context,
tier model.Tier,
darkMode *model.Prefs,
) ([]*model.User, error) {
panic("implement me")
}

Expand All @@ -37,7 +41,10 @@ func (r *queryResolver) User(ctx context.Context, id external.ObjectID) (*model.
}, nil
}

func (r *queryResolver) Search(ctx context.Context, input *model.SearchArgs) ([]*model.User, error) {
func (r *queryResolver) Search(
ctx context.Context,
input *model.SearchArgs,
) ([]*model.User, error) {
location := model.Point{X: 1, Y: 2}
if input.Location != nil {
location = *input.Location
Expand Down
6 changes: 5 additions & 1 deletion _examples/scalars/scalar_test.go
Expand Up @@ -59,7 +59,11 @@ func TestScalars(t *testing.T) {
var resp struct{ Search []RawUser }

err := c.Post(`{ search(input:{createdAfter:"2014"}) { id } }`, &resp)
require.EqualError(t, err, `[{"message":"time should be a unix timestamp","path":["search","input","createdAfter"]}]`)
require.EqualError(
t,
err,
`[{"message":"time should be a unix timestamp","path":["search","input","createdAfter"]}]`,
)
})

t.Run("scalar resolver methods", func(t *testing.T) {
Expand Down

0 comments on commit 9e25d9d

Please sign in to comment.