fix error message when a go string-query fails to parse

This commit is contained in:
Ben Kraft
2021-04-05 17:40:04 -07:00
parent d880512499
commit 6404ba0e58
4 changed files with 33 additions and 2 deletions
+1 -1
View File
@@ -138,7 +138,7 @@ func getQueriesFromGo(text string, basedir, filename string) ([]*ast.QueryDocume
}
var value string
value, err := strconv.Unquote(basicLit.Value)
value, err = strconv.Unquote(basicLit.Value)
if err != nil {
return false
}
+22 -1
View File
@@ -8,7 +8,10 @@ import (
"github.com/vektah/gqlparser/v2/ast"
)
var parseDataDir = "testdata/parsing"
var (
parseDataDir = "testdata/parsing"
parseErrorsDir = "testdata/parsing-errors"
)
func sortQueries(queryDoc *ast.QueryDocument) {
sort.Slice(queryDoc.Operations, func(i, j int) bool {
@@ -61,3 +64,21 @@ func TestParse(t *testing.T) {
})
}
}
// TestParseErrors tests that query-extraction from different language source files
// produces appropriate errors if your query is invalid.
func TestParseErrors(t *testing.T) {
extensions := []string{"graphql", "go"}
for _, ext := range extensions {
t.Run(ext, func(t *testing.T) {
g, err := getQueries(
parseErrorsDir,
[]string{filepath.Join(parseErrorsDir, "*."+ext)})
if err == nil {
t.Errorf("expected error from getQueries(*.%v)", ext)
t.Logf("%#v", g)
}
})
}
}
+7
View File
@@ -0,0 +1,7 @@
package parsing_errors
var _ = `# @genqlient
query myBadQuery(varMissingDollar: String) {
field(arg: $varMissingDollar)
}
`
+3
View File
@@ -0,0 +1,3 @@
query myBadQuery(varMissingDollar: String) {
field(arg: $varMissingDollar)
}