From b72dace4f9fe1be804512511781d8dd24bf3ef95 Mon Sep 17 00:00:00 2001 From: ci <61233757+MaxAake@users.noreply.github.com> Date: Thu, 9 Oct 2025 09:09:19 +0200 Subject: [PATCH 1/7] try done in beforeEach --- packages/neo4j-driver/test/vector-type.test.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/neo4j-driver/test/vector-type.test.js b/packages/neo4j-driver/test/vector-type.test.js index e27287a26..d780a0150 100644 --- a/packages/neo4j-driver/test/vector-type.test.js +++ b/packages/neo4j-driver/test/vector-type.test.js @@ -35,11 +35,12 @@ describe('#integration vector type', () => { await tmpDriver.close() }) - beforeEach(async () => { + beforeEach(async done => { const driver = driverGlobal const session = driver.session() await session.run('MATCH (n) DETACH DELETE n') await session.close() + done() }) afterAll(async () => { From f4e6b0520d379328e76911282c36745ab2e27344 Mon Sep 17 00:00:00 2001 From: ci <61233757+MaxAake@users.noreply.github.com> Date: Thu, 9 Oct 2025 10:06:37 +0200 Subject: [PATCH 2/7] instead return session close promise --- packages/neo4j-driver/test/vector-type.test.js | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/packages/neo4j-driver/test/vector-type.test.js b/packages/neo4j-driver/test/vector-type.test.js index d780a0150..43a0785b5 100644 --- a/packages/neo4j-driver/test/vector-type.test.js +++ b/packages/neo4j-driver/test/vector-type.test.js @@ -35,12 +35,11 @@ describe('#integration vector type', () => { await tmpDriver.close() }) - beforeEach(async done => { + beforeEach(async () => { const driver = driverGlobal const session = driver.session() await session.run('MATCH (n) DETACH DELETE n') - await session.close() - done() + return session.close() }) afterAll(async () => { From 85ba1e422f63fa850d8a2ca75c4a9146e1f64f33 Mon Sep 17 00:00:00 2001 From: ci <61233757+MaxAake@users.noreply.github.com> Date: Thu, 9 Oct 2025 15:36:55 +0200 Subject: [PATCH 3/7] delete nodes with bookmarks --- packages/neo4j-driver/test/vector-type.test.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/neo4j-driver/test/vector-type.test.js b/packages/neo4j-driver/test/vector-type.test.js index 43a0785b5..bdd6a9e5a 100644 --- a/packages/neo4j-driver/test/vector-type.test.js +++ b/packages/neo4j-driver/test/vector-type.test.js @@ -37,9 +37,9 @@ describe('#integration vector type', () => { beforeEach(async () => { const driver = driverGlobal - const session = driver.session() + const session = driver.session({ bookmarkManager: driver.executeQueryBookmarkManager }) await session.run('MATCH (n) DETACH DELETE n') - return session.close() + await session.close() }) afterAll(async () => { From d7bbc010e4342d0f1ba1d68fe916945a80cee707 Mon Sep 17 00:00:00 2001 From: ci <61233757+MaxAake@users.noreply.github.com> Date: Fri, 10 Oct 2025 08:43:50 +0200 Subject: [PATCH 4/7] log some test info --- packages/neo4j-driver/test/vector-type.test.js | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/packages/neo4j-driver/test/vector-type.test.js b/packages/neo4j-driver/test/vector-type.test.js index bdd6a9e5a..22e24e488 100644 --- a/packages/neo4j-driver/test/vector-type.test.js +++ b/packages/neo4j-driver/test/vector-type.test.js @@ -51,14 +51,19 @@ describe('#integration vector type', () => { const driver = driverGlobal const bufferWriter = Uint8Array.from([1, 1]) - await driver.executeQuery('CREATE (p:Product) SET p.vector_from_array = $vector_from_array, p.vector_from_buffer = $vector_from_buffer', { + const write = await driver.executeQuery('CREATE (p:Product) SET p.vector_from_array = $vector_from_array, p.vector_from_buffer = $vector_from_buffer', { vector_from_array: neo4j.vector(Float32Array.from([1, 2, 3, 4])), // Typed arrays can be created from a regular list of Numbers vector_from_buffer: neo4j.vector(new Int8Array(bufferWriter.buffer)) // Or from a bytebuffer }) - const res = await driver.executeQuery('MATCH (p:Product) RETURN p.vector_from_array as arrayVector, p.vector_from_buffer as bufferVector') - const arrayVec = res.records[0].get('arrayVector').asTypedArray() - const bufferVec = res.records[0].get('bufferVector').asTypedArray() + console.error(write) + + const read = await driver.executeQuery('MATCH (p:Product) RETURN p.vector_from_array as arrayVector, p.vector_from_buffer as bufferVector') + + console.error(JSON.stringify(read)) + + const arrayVec = read.records[0].get('arrayVector').asTypedArray() + const bufferVec = read.records[0].get('bufferVector').asTypedArray() expect(arrayVec[0]).toBe(1) expect(bufferVec[1]).toBe(1) From a998ef87d4874d78e55de3e9be05774978cb0307 Mon Sep 17 00:00:00 2001 From: ci <61233757+MaxAake@users.noreply.github.com> Date: Fri, 10 Oct 2025 09:44:34 +0200 Subject: [PATCH 5/7] run whole test in transaction to avoid interference --- .../neo4j-driver/test/vector-type.test.js | 23 ++++++++----------- 1 file changed, 10 insertions(+), 13 deletions(-) diff --git a/packages/neo4j-driver/test/vector-type.test.js b/packages/neo4j-driver/test/vector-type.test.js index 22e24e488..74dca10e1 100644 --- a/packages/neo4j-driver/test/vector-type.test.js +++ b/packages/neo4j-driver/test/vector-type.test.js @@ -49,24 +49,21 @@ describe('#integration vector type', () => { it('write and read vectors', async () => { if (protocolVersion.isGreaterOrEqualTo({ major: 6, minor: 0 }) && edition === 'enterprise') { const driver = driverGlobal - + const session = driver.session() const bufferWriter = Uint8Array.from([1, 1]) - const write = await driver.executeQuery('CREATE (p:Product) SET p.vector_from_array = $vector_from_array, p.vector_from_buffer = $vector_from_buffer', { - vector_from_array: neo4j.vector(Float32Array.from([1, 2, 3, 4])), // Typed arrays can be created from a regular list of Numbers - vector_from_buffer: neo4j.vector(new Int8Array(bufferWriter.buffer)) // Or from a bytebuffer + const res = await session.executeWrite(async (tx) => { + await tx.run('CREATE (p:Product) SET p.vector_from_array = $vector_from_array, p.vector_from_buffer = $vector_from_buffer', { + vector_from_array: neo4j.vector(Float32Array.from([1, 2, 3, 4])), // Typed arrays can be created from a regular list of Numbers + vector_from_buffer: neo4j.vector(new Int8Array(bufferWriter.buffer)) // Or from a bytebuffer + }) + return await tx.run('MATCH (p:Product) RETURN p.vector_from_array as arrayVector, p.vector_from_buffer as bufferVector') }) - - console.error(write) - - const read = await driver.executeQuery('MATCH (p:Product) RETURN p.vector_from_array as arrayVector, p.vector_from_buffer as bufferVector') - - console.error(JSON.stringify(read)) - - const arrayVec = read.records[0].get('arrayVector').asTypedArray() - const bufferVec = read.records[0].get('bufferVector').asTypedArray() + const arrayVec = res.records[0].get('arrayVector').asTypedArray() + const bufferVec = res.records[0].get('bufferVector').asTypedArray() expect(arrayVec[0]).toBe(1) expect(bufferVec[1]).toBe(1) + session.close() } }) }) From 50a7eacf4a0dcc1e1a12ac97c8627f88af655029 Mon Sep 17 00:00:00 2001 From: ci <61233757+MaxAake@users.noreply.github.com> Date: Fri, 10 Oct 2025 13:58:35 +0200 Subject: [PATCH 6/7] runInBand for browser tests Revert "run whole test in transaction to avoid interference" This reverts commit a998ef87d4874d78e55de3e9be05774978cb0307. Revert "log some test info" This reverts commit d7bbc010e4342d0f1ba1d68fe916945a80cee707. --- packages/neo4j-driver/package.json | 2 +- packages/neo4j-driver/test/vector-type.test.js | 14 ++++++-------- 2 files changed, 7 insertions(+), 9 deletions(-) diff --git a/packages/neo4j-driver/package.json b/packages/neo4j-driver/package.json index 3ffe83896..bd9a1ad42 100644 --- a/packages/neo4j-driver/package.json +++ b/packages/neo4j-driver/package.json @@ -22,7 +22,7 @@ "lint": "eslint --fix --ext .js ./", "test": "gulp test", "test::unit": "gulp test-nodejs-unit && gulp run-ts-declaration-tests", - "test::browser": "jest -c jest.browser.config.ts", + "test::browser": "jest -c jest.browser.config.ts --runInBand", "test::integration": "gulp test-nodejs-integration", "test::stress": "gulp run-stress-tests-without-jasmine", "build": "gulp all", diff --git a/packages/neo4j-driver/test/vector-type.test.js b/packages/neo4j-driver/test/vector-type.test.js index 74dca10e1..bdd6a9e5a 100644 --- a/packages/neo4j-driver/test/vector-type.test.js +++ b/packages/neo4j-driver/test/vector-type.test.js @@ -49,21 +49,19 @@ describe('#integration vector type', () => { it('write and read vectors', async () => { if (protocolVersion.isGreaterOrEqualTo({ major: 6, minor: 0 }) && edition === 'enterprise') { const driver = driverGlobal - const session = driver.session() + const bufferWriter = Uint8Array.from([1, 1]) - const res = await session.executeWrite(async (tx) => { - await tx.run('CREATE (p:Product) SET p.vector_from_array = $vector_from_array, p.vector_from_buffer = $vector_from_buffer', { - vector_from_array: neo4j.vector(Float32Array.from([1, 2, 3, 4])), // Typed arrays can be created from a regular list of Numbers - vector_from_buffer: neo4j.vector(new Int8Array(bufferWriter.buffer)) // Or from a bytebuffer - }) - return await tx.run('MATCH (p:Product) RETURN p.vector_from_array as arrayVector, p.vector_from_buffer as bufferVector') + await driver.executeQuery('CREATE (p:Product) SET p.vector_from_array = $vector_from_array, p.vector_from_buffer = $vector_from_buffer', { + vector_from_array: neo4j.vector(Float32Array.from([1, 2, 3, 4])), // Typed arrays can be created from a regular list of Numbers + vector_from_buffer: neo4j.vector(new Int8Array(bufferWriter.buffer)) // Or from a bytebuffer }) + const res = await driver.executeQuery('MATCH (p:Product) RETURN p.vector_from_array as arrayVector, p.vector_from_buffer as bufferVector') + const arrayVec = res.records[0].get('arrayVector').asTypedArray() const bufferVec = res.records[0].get('bufferVector').asTypedArray() expect(arrayVec[0]).toBe(1) expect(bufferVec[1]).toBe(1) - session.close() } }) }) From 786cda06f2a53624f858a88e90c5090f08b9cdaf Mon Sep 17 00:00:00 2001 From: ci <61233757+MaxAake@users.noreply.github.com> Date: Fri, 10 Oct 2025 15:41:15 +0200 Subject: [PATCH 7/7] skip the bookmarks --- packages/neo4j-driver/test/vector-type.test.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/neo4j-driver/test/vector-type.test.js b/packages/neo4j-driver/test/vector-type.test.js index bdd6a9e5a..e27287a26 100644 --- a/packages/neo4j-driver/test/vector-type.test.js +++ b/packages/neo4j-driver/test/vector-type.test.js @@ -37,7 +37,7 @@ describe('#integration vector type', () => { beforeEach(async () => { const driver = driverGlobal - const session = driver.session({ bookmarkManager: driver.executeQueryBookmarkManager }) + const session = driver.session() await session.run('MATCH (n) DETACH DELETE n') await session.close() })