github.com/robertoortis/gqlgenm@v0.7.2/codegen/codegen_test.go (about)

     1  package codegen
     2  
     3  import (
     4  	"syscall"
     5  	"testing"
     6  
     7  	"github.com/stretchr/testify/require"
     8  	"golang.org/x/tools/go/loader"
     9  )
    10  
    11  func TestGenerateServer(t *testing.T) {
    12  	name := "graphserver"
    13  	schema := `
    14  	type Query {
    15  		user: User
    16  	}
    17  	type User {
    18  		id: Int
    19  		fist_name: String
    20  	}
    21  `
    22  	serverFilename := "gen/" + name + "/server/server.go"
    23  	cfg := Config{
    24  		SchemaFilename: SchemaFilenames{"schema.graphql"},
    25  		SchemaStr:      map[string]string{"schema.graphql": schema},
    26  		Exec:           PackageConfig{Filename: "gen/" + name + "/exec.go"},
    27  		Model:          PackageConfig{Filename: "gen/" + name + "/model.go"},
    28  		Resolver:       PackageConfig{Filename: "gen/" + name + "/resolver.go", Type: "Resolver"},
    29  	}
    30  
    31  	_ = syscall.Unlink(cfg.Resolver.Filename)
    32  	_ = syscall.Unlink(serverFilename)
    33  
    34  	err := Generate(cfg)
    35  	require.NoError(t, err)
    36  
    37  	err = GenerateServer(cfg, serverFilename)
    38  	require.NoError(t, err)
    39  
    40  	conf := loader.Config{}
    41  	conf.CreateFromFilenames("gen/"+name, serverFilename)
    42  
    43  	_, err = conf.Load()
    44  	require.NoError(t, err)
    45  }