Skip to content

Commit ced8b9c

Browse files
committed
Add temporal token tests
1 parent 7f0d546 commit ced8b9c

File tree

4 files changed

+50
-3
lines changed

4 files changed

+50
-3
lines changed

packages/testkit-backend/src/context.js

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ export default class Context {
1515
this._authTokenManagers = {}
1616
this._authTokenManagerGetAuthRequests = {}
1717
this._authTokenManagerOnAuthExpiredRequests = {}
18+
this._temporalAuthTokenProviderRequests = {}
1819
this._binder = binder
1920
this._environmentLogLevel = environmentLogLevel
2021
}
@@ -200,6 +201,18 @@ export default class Context {
200201
delete this._authTokenManagerOnAuthExpiredRequests[id]
201202
}
202203

204+
addTemporalAuthTokenProviderRequest (resolve, reject) {
205+
return this._add(this._temporalAuthTokenProviderRequests, { resolve, reject })
206+
}
207+
208+
getTemporalAuthTokenProviderRequest (id) {
209+
return this._temporalAuthTokenProviderRequests[id]
210+
}
211+
212+
removeTemporalAuthTokenProviderRequest (id) {
213+
delete this._temporalAuthTokenProviderRequests[id]
214+
}
215+
203216
_add (map, object) {
204217
this._id++
205218
map[this._id] = object

packages/testkit-backend/src/request-handlers-rx.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,11 @@ export {
2626
StartSubTest,
2727
ExecuteQuery,
2828
NewAuthTokenManager,
29+
NewTemporalAuthTokenManager,
2930
AuthTokenManagerClose,
3031
AuthTokenManagerGetAuthCompleted,
3132
AuthTokenManagerOnAuthExpiredCompleted,
33+
TemporalAuthTokenProviderCompleted,
3234
FakeTimeInstall,
3335
FakeTimeTick,
3436
FakeTimeUninstall

packages/testkit-backend/src/request-handlers.js

Lines changed: 27 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -435,7 +435,7 @@ export function ResolverResolutionCompleted (
435435
}
436436

437437
export function NewBookmarkManager (
438-
neo4j,
438+
{ neo4j },
439439
context,
440440
{
441441
initialBookmarks,
@@ -526,6 +526,19 @@ export function NewAuthTokenManager (_, context, _data, wire) {
526526
wire.writeResponse(responses.AuthTokenManager({ id }))
527527
}
528528

529+
export function NewTemporalAuthTokenManager ({ neo4j }, context, _, wire) {
530+
const id = context.addAuthTokenManager((temporalAuthTokenManagerId) => {
531+
return neo4j.temporalAuthDataManager({
532+
getAuthData: () => new Promise((resolve, reject) => {
533+
const id = context.addTemporalAuthTokenProviderRequest(resolve, reject)
534+
wire.writeResponse(responses.TemporalAuthTokenProviderRequest({ id, temporalAuthTokenManagerId }))
535+
})
536+
})
537+
})
538+
539+
wire.writeResponse(responses.TemporalAuthTokenManager({ id }))
540+
}
541+
529542
export function AuthTokenManagerClose (_, context, { id }, wire) {
530543
context.removeAuthTokenManager(id)
531544
wire.writeResponse(responses.AuthTokenManager({ id }))
@@ -537,10 +550,21 @@ export function AuthTokenManagerGetAuthCompleted (_, context, { requestId, auth
537550
context.removeAuthTokenManagerGetAuthRequest(requestId)
538551
}
539552

540-
export function AuthTokenManagerOnAuthExpiredCompleted (_, context, { requestId, auth }) {
553+
export function AuthTokenManagerOnAuthExpiredCompleted (_, context, { requestId }) {
541554
context.removeAuthTokenManagerOnAuthExpiredRequest(requestId)
542555
}
543556

557+
export function TemporalAuthTokenProviderCompleted (_, context, { requestId, auth }) {
558+
const request = context.getTemporalAuthTokenProviderRequest(requestId)
559+
request.resolve({
560+
expiry: auth.data.expiresInMs != null
561+
? new Date(new Date().getTime() + auth.data.expiresInMs)
562+
: undefined,
563+
token: context.binder.parseAuthToken(auth.data.auth.data)
564+
})
565+
context.removeTemporalAuthTokenProviderRequest(requestId)
566+
}
567+
544568
export function GetRoutingTable (_, context, { driverId, database }, wire) {
545569
const driver = context.getDriver(driverId)
546570
const routingTable =
@@ -584,7 +608,7 @@ export function ForcedRoutingTableUpdate (_, context, { driverId, database, book
584608
}
585609
}
586610

587-
export function ExecuteQuery (neo4j, context, { driverId, cypher, params, config }, wire) {
611+
export function ExecuteQuery ({ neo4j }, context, { driverId, cypher, params, config }, wire) {
588612
const driver = context.getDriver(driverId)
589613
if (params) {
590614
for (const [key, value] of Object.entries(params)) {

packages/testkit-backend/src/responses.js

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -119,6 +119,14 @@ export function AuthTokenManagerOnAuthExpiredRequest ({ id, authTokenManagerId,
119119
return response('AuthTokenManagerOnAuthExpiredRequest', { id, authTokenManagerId, auth: AuthorizationToken(auth) })
120120
}
121121

122+
export function TemporalAuthTokenManager ({ id }) {
123+
return response('TemporalAuthTokenManager', { id })
124+
}
125+
126+
export function TemporalAuthTokenProviderRequest ({ id, temporalAuthTokenManagerId }) {
127+
return response('TemporalAuthTokenProviderRequest', { id, temporalAuthTokenManagerId })
128+
}
129+
122130
export function DriverIsAuthenticated ({ id, authenticated }) {
123131
return response('DriverIsAuthenticated', { id, authenticated })
124132
}

0 commit comments

Comments
 (0)