Skip to content

Commit a608ef1

Browse files
pigullakhaosdoctor
authored andcommitted
Fixes #51
1 parent 0ad7825 commit a608ef1

File tree

2 files changed

+32
-2
lines changed

2 files changed

+32
-2
lines changed

src/modules/parser.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ const info = debug('gotql:info:parser')
1212
*/
1313
function getQueryVars (variables: QueryType['variables']): string {
1414
info('Getting query variables')
15-
if (!variables) return ''
15+
if (!variables || Object.keys(variables).length === 0) return ''
1616

1717
let queryVars = '('
1818
for (let varName in variables) {
@@ -236,7 +236,7 @@ function parseOperation (query: QueryType, allowEmptyFields: boolean = false): s
236236

237237
try {
238238
let operationArgs = ''
239-
if (operation.args) {
239+
if (operation.args && Object.keys(operation.args).length > 0) {
240240
info('Parsing args')
241241
operationArgs = parseArgs(query.operation.args, query.variables)
242242
info('Operation args are: %s', operationArgs)

tests/parser.test.ts

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -673,4 +673,34 @@ describe('parser', () => {
673673
const mutationResult = parse(query, ExecutionType.MUTATION)
674674
expect(mutationResult).toEqual(mutationReturn)
675675
})
676+
677+
it('should not add parenthesis if the args object is empty (#TBD)', () => {
678+
const query = {
679+
name: 'TestQuery',
680+
operation: {
681+
name: 'TestOp',
682+
args: {},
683+
fields: ['field1', 'field2']
684+
}
685+
}
686+
687+
const testReturn = 'query TestQuery { TestOp { field1 field2 } }'
688+
const queryResult = parse(query, ExecutionType.QUERY)
689+
expect(queryResult).toEqual(testReturn)
690+
});
691+
692+
it('should handle the empty object for variables (#TBD)', () => {
693+
const query = {
694+
name: 'TestQuery',
695+
operation: {
696+
name: 'TestOp',
697+
fields: ['field1', 'field2']
698+
},
699+
variables: {}
700+
}
701+
702+
const testReturn = 'query TestQuery { TestOp { field1 field2 } }'
703+
const queryResult = parse(query, ExecutionType.QUERY)
704+
expect(queryResult).toEqual(testReturn)
705+
});
676706
})

0 commit comments

Comments
 (0)