...
1 package api
2
3 import (
4 "os"
5 "path"
6 "testing"
7
8 "github.com/stretchr/testify/require"
9
10 "github.com/99designs/gqlgen/codegen/config"
11 )
12
13 func cleanup(workDir string) {
14 _ = os.Remove(path.Join(workDir, "server.go"))
15 _ = os.RemoveAll(path.Join(workDir, "graph", "generated"))
16 _ = os.Remove(path.Join(workDir, "graph", "resolver.go"))
17 _ = os.Remove(path.Join(workDir, "graph", "schema.resolvers.go"))
18 _ = os.Remove(path.Join(workDir, "graph", "model", "models_gen.go"))
19 }
20
21 func TestGenerate(t *testing.T) {
22 wd, _ := os.Getwd()
23 type args struct {
24 workDir string
25 }
26 tests := []struct {
27 name string
28 args args
29 wantErr bool
30 }{
31 {
32 name: "default",
33 args: args{
34 workDir: path.Join(wd, "testdata", "default"),
35 },
36 wantErr: false,
37 },
38 {
39 name: "federation2",
40 args: args{
41 workDir: path.Join(wd, "testdata", "federation2"),
42 },
43 wantErr: false,
44 },
45 }
46 for _, tt := range tests {
47 t.Run(tt.name, func(t *testing.T) {
48 defer func() {
49 cleanup(tt.args.workDir)
50 _ = os.Chdir(wd)
51 }()
52 _ = os.Chdir(tt.args.workDir)
53 cfg, err := config.LoadConfigFromDefaultLocations()
54 require.Nil(t, err, "failed to load config")
55 if err := Generate(cfg); (err != nil) != tt.wantErr {
56 t.Errorf("Generate() error = %v, wantErr %v", err, tt.wantErr)
57 }
58 })
59 }
60 }
61
View as plain text