42 lines
820 B
Go
42 lines
820 B
Go
package generate
|
|
|
|
import (
|
|
"bytes"
|
|
"io/ioutil"
|
|
"path/filepath"
|
|
"runtime"
|
|
"testing"
|
|
)
|
|
|
|
func TestGenerateExample(t *testing.T) {
|
|
_, thisFile, _, ok := runtime.Caller(0)
|
|
if !ok {
|
|
t.Fatal("runtime.Caller non-ok")
|
|
}
|
|
|
|
repoRoot := filepath.Dir(filepath.Dir(thisFile))
|
|
configFilename := filepath.Join(repoRoot, "example/genqlient.yaml")
|
|
config, err := ReadAndValidateConfig(configFilename)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
|
|
generated, err := Generate(config)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
|
|
for filename, content := range generated {
|
|
expectedContent, err := ioutil.ReadFile(filename)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
|
|
if !bytes.Equal(content, expectedContent) {
|
|
t.Errorf(
|
|
"diffs to %v:\n---actual---\n%v\n---expected---\n%v",
|
|
filename, string(content), string(expectedContent))
|
|
}
|
|
}
|
|
}
|