Skip to content

Commit 7e622d9

Browse files
authored
Fix Driver.supportsMultiDb return type (#740)
Also add a explicity return type for `supportsTransactionConfig`
1 parent 64dafb3 commit 7e622d9

File tree

2 files changed

+97
-2
lines changed

2 files changed

+97
-2
lines changed

core/src/driver.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -159,7 +159,7 @@ class Driver {
159159
*
160160
* @returns {Promise<boolean>} promise resolved with a boolean or rejected with error.
161161
*/
162-
supportsMultiDb(): Promise<Boolean> {
162+
supportsMultiDb(): Promise<boolean> {
163163
const connectionProvider = this._getOrCreateConnectionProvider()
164164
return connectionProvider.supportsMultiDb()
165165
}
@@ -172,7 +172,7 @@ class Driver {
172172
*
173173
* @returns {Promise<boolean>} promise resolved with a boolean or rejected with error.
174174
*/
175-
supportsTransactionConfig() {
175+
supportsTransactionConfig(): Promise<boolean> {
176176
const connectionProvider = this._getOrCreateConnectionProvider()
177177
return connectionProvider.supportsTransactionConfig()
178178
}

core/test/driver.test.ts

Lines changed: 95 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,95 @@
1+
/**
2+
* Copyright (c) "Neo4j"
3+
* Neo4j Sweden AB [http://neo4j.com]
4+
*
5+
* This file is part of Neo4j.
6+
*
7+
* Licensed under the Apache License, Version 2.0 (the "License");
8+
* you may not use this file except in compliance with the License.
9+
* You may obtain a copy of the License at
10+
*
11+
* http://www.apache.org/licenses/LICENSE-2.0
12+
*
13+
* Unless required by applicable law or agreed to in writing, software
14+
* distributed under the License is distributed on an "AS IS" BASIS,
15+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16+
* See the License for the specific language governing permissions and
17+
* limitations under the License.
18+
*/
19+
import { ConnectionProvider, newError } from '../src'
20+
import Driver from '../src/driver'
21+
import { Logger } from '../src/internal/logger'
22+
import { ConfiguredCustomResolver } from '../src/internal/resolver'
23+
24+
describe('Driver', () => {
25+
let driver: Driver | null
26+
let connectionProvider: ConnectionProvider
27+
const META_INFO = {
28+
routing: false,
29+
typename: '',
30+
address: 'localhost'
31+
}
32+
const CONFIG = {}
33+
34+
beforeEach(() => {
35+
connectionProvider = new ConnectionProvider()
36+
connectionProvider.close = jest.fn(() => Promise.resolve())
37+
driver = new Driver(
38+
META_INFO,
39+
CONFIG,
40+
mockCreateConnectonProvider(connectionProvider)
41+
)
42+
})
43+
44+
afterEach(async () => {
45+
if (driver) {
46+
await driver.close()
47+
driver = null
48+
}
49+
})
50+
51+
it.each([
52+
['Promise.resolve(true)', Promise.resolve(true)],
53+
['Promise.resolve(false)', Promise.resolve(false)],
54+
[
55+
"Promise.reject(newError('something went wrong'))",
56+
Promise.reject(newError('something went wrong'))
57+
]
58+
])('.supportsMultiDb() => %s', (_, expectedPromise) => {
59+
connectionProvider.supportsMultiDb = jest.fn(() => expectedPromise)
60+
61+
const promise: Promise<boolean> = driver!.supportsMultiDb()
62+
63+
expect(promise).toBe(expectedPromise)
64+
65+
promise.catch(_ => 'Do nothing').finally(() => {})
66+
})
67+
68+
it.each([
69+
['Promise.resolve(true)', Promise.resolve(true)],
70+
['Promise.resolve(false)', Promise.resolve(false)],
71+
[
72+
"Promise.reject(newError('something went wrong'))",
73+
Promise.reject(newError('something went wrong'))
74+
]
75+
])('.supportsTransactionConfig() => %s', (_, expectedPromise) => {
76+
connectionProvider.supportsTransactionConfig = jest.fn(
77+
() => expectedPromise
78+
)
79+
80+
const promise: Promise<boolean> = driver!.supportsTransactionConfig()
81+
82+
expect(promise).toBe(expectedPromise)
83+
84+
promise.catch(_ => 'Do nothing').finally(() => {})
85+
})
86+
87+
function mockCreateConnectonProvider(connectionProvider: ConnectionProvider) {
88+
return (
89+
id: number,
90+
config: Object,
91+
log: Logger,
92+
hostNameResolver: ConfiguredCustomResolver
93+
) => connectionProvider
94+
}
95+
})

0 commit comments

Comments
 (0)