Skip to content

Commit c3f388f

Browse files
authored
Feat/tesktkit session run (#268)
- Authentication Refactor: Unified all auth methods under BoltConnection, removed protocol-version coupling, and standardized send()->getResponse() flow. - Connection & Message Factory: BoltMessageFactory now uses the full connection; added state tracking, logging, and proper cleanup for unconsumed results. - Transaction Handling: BoltUnmanagedTransaction now throws TransactionException; improved commit/rollback guards and clearer error messages. - Session Management: Added Session::close() to discard unconsumed results; centralized retry logic in TransactionHelper; improved connection tracking and cleanup. - TransactionHelper: Extracted and unified retry/rollback logic for consistent transaction error handling. - SummarizedResultFormatter: Unified handling of contains-system-updates vs system-updates for cross-version compatibility. - Query ID Tracking: Added qid to CypherList for query traceability. - AbstractRunner: Returns more precise error responses (DriverErrorResponse, TransactionException); simplified result extraction. - Retryable Messages: RetryablePositive now actually commits; RetryableNegative returns proper client error types. - Metadata Decoding: All transaction methods now decode CypherMap/CypherList metadata into structured PHP values. - DriverErrorResponse: Extended to differentiate Neo4jException and TransactionException. - Socket Timeout: Set 24-hour timeout to ensure persistent connections for long-running sessions.
1 parent 5c6e5ab commit c3f388f

File tree

75 files changed

+775
-1693
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

75 files changed

+775
-1693
lines changed

.github/workflows/testkit.yml

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -68,11 +68,5 @@ jobs:
6868
6969
- name: Run integration tests
7070
run: |
71-
docker compose up -d --remove-orphans --wait --no-build \
72-
server1 \
73-
server2 \
74-
server3 \
75-
server4 \
76-
testkit_backend
77-
78-
docker compose run --rm testkit ./testkit.sh
71+
docker compose up -d --remove-orphans --wait --no-build testkit_backend neo4j
72+
docker compose up testkit

Dockerfile.neo4j-okta

Lines changed: 0 additions & 3 deletions
This file was deleted.

composer.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
"psr/http-factory": "^1.0",
2929
"psr/http-client": "^1.0",
3030
"php-http/message": "^1.0",
31-
"stefanak-michal/bolt": "^7.2.4",
31+
"stefanak-michal/bolt": "^7.1.4",
3232
"symfony/polyfill-php80": "^1.2",
3333
"psr/simple-cache": ">=2.0",
3434
"ext-json": "*",

docker-compose.yml

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ services:
5353
- .env
5454
neo4j:
5555
<<: *common
56-
image: neo4j:5.23-enterprise
56+
image: neo4j:5-enterprise
5757
hostname: neo4j
5858
networks:
5959
- neo4j
@@ -62,7 +62,7 @@ services:
6262
- "11474:7474"
6363
environment:
6464
<<: *common-env
65-
NEO4J_ACCEPT_LICENSE_AGREEMENT: 'yes' # Also add this
65+
NEO4J_ACCEPT_LICENSE_AGREEMENT: 'yes'
6666
NEO4J_server_bolt_advertised__address: neo4j:7687
6767
NEO4J_server_http_advertised__address: neo4j:7474
6868

@@ -119,6 +119,7 @@ services:
119119

120120
testkit:
121121
image: python:3.13
122+
command: ./testkit.sh
122123
volumes:
123124
- .:/opt/project
124125
working_dir: /opt/project/testkit-backend
@@ -131,6 +132,9 @@ services:
131132
TEST_DRIVER_NAME: php
132133
TEST_DRIVER_REPO: /opt/project
133134
TEST_BACKEND_HOST: testkit_backend
135+
TEST_STUB_HOST: testkit
136+
depends_on:
137+
- testkit_backend
134138

135139
testkit_backend:
136140
<<: *common-php
@@ -141,7 +145,5 @@ services:
141145
- neo4j
142146
extra_hosts:
143147
- "host.docker.internal:host-gateway"
144-
depends_on:
145-
- neo4j
146148
ports:
147149
- "9876:9876"

0 commit comments

Comments
 (0)