Skip to content

Commit

Permalink
Fix error message in single-root-entity-fields
Browse files Browse the repository at this point in the history
Previously, this was [object object].
  • Loading branch information
Yogu committed Apr 9, 2019
1 parent 42cd428 commit a588b5c
Show file tree
Hide file tree
Showing 3 changed files with 155 additions and 1 deletion.
52 changes: 52 additions & 0 deletions spec/regression/logistics/tests/query-single.graphql
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
query byID {
Delivery(id: "@{ids/Delivery/3}") {
deliveryNumber
}
}

query byKey {
Delivery (deliveryNumber: "1000521") {
deliveryNumber
}
}

query notFound {
Delivery (deliveryNumber: "does-not-exist") {
deliveryNumber
}
}

# throws
query noArgs {
Delivery {
deliveryNumber
}
}

# throws
query tooManyArgs {
Delivery(id: "@{ids/Delivery/3}", deliveryNumber: "1000521") {
deliveryNumber
}
}

# currently returns null, but should probably be an error
query nullArg {
Delivery(id: null) {
deliveryNumber
}
}

# throws
query twoNullArgs {
Delivery(id: null, deliveryNumber: null) {
deliveryNumber
}
}

# currently throws, but should probably be ok
query nullAndNonNullArg {
Delivery(id: null, deliveryNumber: "1000521") {
deliveryNumber
}
}
102 changes: 102 additions & 0 deletions spec/regression/logistics/tests/query-single.result.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,102 @@
{
"byID": {
"data": {
"Delivery": {
"deliveryNumber": "1000522"
}
}
},
"byKey": {
"data": {
"Delivery": {
"deliveryNumber": "1000521"
}
}
},
"notFound": {
"data": {
"Delivery": null
}
},
"noArgs": {
"errors": [
{
"message": "Must specify exactly one argument to field \"Delivery\"",
"locations": [
{
"line": 21,
"column": 5
}
],
"path": [
"Delivery"
]
}
],
"data": {
"Delivery": null
}
},
"tooManyArgs": {
"errors": [
{
"message": "Must specify exactly one argument to field \"Delivery\"",
"locations": [
{
"line": 28,
"column": 5
}
],
"path": [
"Delivery"
]
}
],
"data": {
"Delivery": null
}
},
"nullArg": {
"data": {
"Delivery": null
}
},
"twoNullArgs": {
"errors": [
{
"message": "Must specify exactly one argument to field \"Delivery\"",
"locations": [
{
"line": 42,
"column": 5
}
],
"path": [
"Delivery"
]
}
],
"data": {
"Delivery": null
}
},
"nullAndNonNullArg": {
"errors": [
{
"message": "Must specify exactly one argument to field \"Delivery\"",
"locations": [
{
"line": 49,
"column": 5
}
],
"path": [
"Delivery"
]
}
],
"data": {
"Delivery": null
}
}
}
2 changes: 1 addition & 1 deletion src/schema-generation/utils/entities-by-uinque-field.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ export function getEntitiesByUniqueFieldQuery(rootEntityType: RootEntityType, ar
const filterClauses = objectEntries(args).map(([fieldName, value]) =>
new BinaryOperationQueryNode(createFieldNode(rootEntityType.getFieldOrThrow(fieldName), entityVarNode), BinaryOperator.EQUAL, new LiteralQueryNode(value)));
if (filterClauses.length != 1) {
throw new Error(`Must specify exactly one argument to ${rootEntityType.toString()}`); // TODO throw this at the correct GraphQL query location
throw new Error(`Must specify exactly one argument to field "${rootEntityType.name}"`); // TODO throw this at the correct GraphQL query location
}
const filterNode = filterClauses[0];
const listNode = new EntitiesQueryNode(rootEntityType);
Expand Down

0 comments on commit a588b5c

Please sign in to comment.