|
16 | 16 | * See the License for the specific language governing permissions and
|
17 | 17 | * limitations under the License.
|
18 | 18 | */
|
19 |
| -import { ConnectionProvider, newError, Session } from '../src' |
20 |
| -import Driver from '../src/driver' |
| 19 | +import { ConnectionProvider, newError, ServerInfo, Session } from '../src' |
| 20 | +import Driver, { READ } from '../src/driver' |
21 | 21 | import { Bookmarks } from '../src/internal/bookmarks'
|
22 | 22 | import { Logger } from '../src/internal/logger'
|
23 | 23 | import { ConfiguredCustomResolver } from '../src/internal/resolver'
|
@@ -194,6 +194,48 @@ describe('Driver', () => {
|
194 | 194 | await driver.close()
|
195 | 195 | })
|
196 | 196 |
|
| 197 | + it.each([ |
| 198 | + [undefined, 'Promise.resolve(ServerInfo>)', Promise.resolve(new ServerInfo())], |
| 199 | + [undefined, 'Promise.reject(Error)', Promise.reject(newError('something went wrong'))], |
| 200 | + [{}, 'Promise.resolve(ServerInfo>)', Promise.resolve(new ServerInfo())], |
| 201 | + [{}, 'Promise.reject(Error)', Promise.reject(newError('something went wrong'))], |
| 202 | + [{ database: undefined }, 'Promise.resolve(ServerInfo>)', Promise.resolve(new ServerInfo())], |
| 203 | + [{ database: undefined }, 'Promise.reject(Error)', Promise.reject(newError('something went wrong'))], |
| 204 | + [{ database: 'db' }, 'Promise.resolve(ServerInfo>)', Promise.resolve(new ServerInfo())], |
| 205 | + [{ database: 'db' }, 'Promise.reject(Error)', Promise.reject(newError('something went wrong'))], |
| 206 | + ])('.verifyConnectivity(%o) => %s', (input: { database?: string } | undefined, _, expectedPromise) => { |
| 207 | + connectionProvider.verifyConnectivityAndGetServerInfo = jest.fn(() => expectedPromise) |
| 208 | + |
| 209 | + const promise: Promise<ServerInfo> = driver!.verifyConnectivity(input) |
| 210 | + |
| 211 | + expect(promise).toBe(expectedPromise) |
| 212 | + expect(connectionProvider.verifyConnectivityAndGetServerInfo) |
| 213 | + .toBeCalledWith({ database: input && input.database ? input.database : '', accessMode: READ }) |
| 214 | + |
| 215 | + promise.catch(_ => 'Do nothing').finally(() => { }) |
| 216 | + }) |
| 217 | + |
| 218 | + it.each([ |
| 219 | + [undefined, 'Promise.resolve(ServerInfo>)', Promise.resolve(new ServerInfo())], |
| 220 | + [undefined, 'Promise.reject(Error)', Promise.reject(newError('something went wrong'))], |
| 221 | + [{}, 'Promise.resolve(ServerInfo>)', Promise.resolve(new ServerInfo())], |
| 222 | + [{}, 'Promise.reject(Error)', Promise.reject(newError('something went wrong'))], |
| 223 | + [{ database: undefined }, 'Promise.resolve(ServerInfo>)', Promise.resolve(new ServerInfo())], |
| 224 | + [{ database: undefined }, 'Promise.reject(Error)', Promise.reject(newError('something went wrong'))], |
| 225 | + [{ database: 'db' }, 'Promise.resolve(ServerInfo>)', Promise.resolve(new ServerInfo())], |
| 226 | + [{ database: 'db' }, 'Promise.reject(Error)', Promise.reject(newError('something went wrong'))], |
| 227 | + ])('.getServerInfo(%o) => %s', (input: { database?: string } | undefined, _, expectedPromise) => { |
| 228 | + connectionProvider.verifyConnectivityAndGetServerInfo = jest.fn(() => expectedPromise) |
| 229 | + |
| 230 | + const promise: Promise<ServerInfo> = driver!.getServerInfo(input) |
| 231 | + |
| 232 | + expect(promise).toBe(expectedPromise) |
| 233 | + expect(connectionProvider.verifyConnectivityAndGetServerInfo) |
| 234 | + .toBeCalledWith({ database: input && input.database ? input.database : '', accessMode: READ }) |
| 235 | + |
| 236 | + promise.catch(_ => 'Do nothing').finally(() => { }) |
| 237 | + }) |
| 238 | + |
197 | 239 | function mockCreateConnectonProvider(connectionProvider: ConnectionProvider) {
|
198 | 240 | return (
|
199 | 241 | id: number,
|
|
0 commit comments