diff --git a/packages/core/src/driver.ts b/packages/core/src/driver.ts index d91079d5b..f9745f35b 100644 --- a/packages/core/src/driver.ts +++ b/packages/core/src/driver.ts @@ -471,7 +471,7 @@ class Driver { * @see {@link resultTransformers} for provided result transformers. * @see https://github.com/neo4j/neo4j-javascript-driver/discussions/1052 */ - async executeQuery (query: Query, parameters?: any, config: QueryConfig = {}): Promise { + async executeQuery (query: Query, parameters?: any, config: QueryConfig = {}): Promise { const bookmarkManager = config.bookmarkManager === null ? undefined : (config.bookmarkManager ?? this.queryBookmarkManager) const resultTransformer = (config.resultTransformer ?? resultTransformers.eagerResultTransformer()) as ResultTransformer const routingConfig: string = config.routing ?? routing.WRITERS diff --git a/packages/core/test/driver.test.ts b/packages/core/test/driver.test.ts index abaa481ea..2ac292125 100644 --- a/packages/core/test/driver.test.ts +++ b/packages/core/test/driver.test.ts @@ -342,6 +342,32 @@ describe('Driver', () => { }, query, params) }) + it('should be able to destruct the result in records, keys and summary', async () => { + const query = 'Query' + const params = {} + const spiedExecute = jest.spyOn(queryExecutor, 'execute') + const expected: EagerResult = { + keys: ['a'], + records: [], + summary: new ResultSummary(query, params, {}, 5.0) + } + spiedExecute.mockResolvedValue(expected) + + // eslint-disable-next-line @typescript-eslint/no-non-null-assertion + const { records, keys, summary } = await driver!.executeQuery(query, params) + + expect(records).toEqual(expected.records) + expect(keys).toEqual(expected.keys) + expect(summary).toEqual(expected.summary) + expect(spiedExecute).toBeCalledWith({ + resultTransformer: resultTransformers.eagerResultTransformer(), + bookmarkManager: driver?.queryBookmarkManager, + routing: routing.WRITERS, + database: undefined, + impersonatedUser: undefined + }, query, params) + }) + it('should be able get type-safe Records', async () => { interface Person { name: string diff --git a/packages/neo4j-driver-deno/lib/core/driver.ts b/packages/neo4j-driver-deno/lib/core/driver.ts index 2df41762e..7c5cb12c5 100644 --- a/packages/neo4j-driver-deno/lib/core/driver.ts +++ b/packages/neo4j-driver-deno/lib/core/driver.ts @@ -471,7 +471,7 @@ class Driver { * @see {@link resultTransformers} for provided result transformers. * @see https://github.com/neo4j/neo4j-javascript-driver/discussions/1052 */ - async executeQuery (query: Query, parameters?: any, config: QueryConfig = {}): Promise { + async executeQuery (query: Query, parameters?: any, config: QueryConfig = {}): Promise { const bookmarkManager = config.bookmarkManager === null ? undefined : (config.bookmarkManager ?? this.queryBookmarkManager) const resultTransformer = (config.resultTransformer ?? resultTransformers.eagerResultTransformer()) as ResultTransformer const routingConfig: string = config.routing ?? routing.WRITERS