У меня есть следующий код, который мне нужно проверить:
createCassandraDriver
const driver = require('cassandra-driver')
module.exports = ({
cassandra_user,
cassandra_password,
cassandra_address
}) => {
return new Promise((resolve, reject) => {
try {
const client = new driver.Client({
contactPoints: cassandra_address.split(','),
authProvider: authProvider(cassandra_user, cassandra_password),
queryconfig: {
consistency: driver.types.consistencies.quorum
}
})
return resolve(client)
} catch (e) {
reject(e)
}
})
}
Я пытаюсь смоделировать вызов «driver.Client».
Я попытался сделать это с помощью 'spyOn', например так:
'use strict';
const rewire = require('rewire'),
driver = require('cassandra-driver'),
createCassandraDriver = require('../../lib/createCassandraDriver.js');
const defaultArguments = () => {
return {
'cassandra_address': '127.0.0.1',
'cassandra_user': 'cassandra_user',
'cassandra_password': 'cassandra_password'
};
}
jest.mock("cassandra-driver");
describe('Create cassandra driver tests', function () {
describe('success flow', function () {
it('Should pass without any errors ', async function () {
await createCassandraDriver(defaultArguments())
});
});
afterEach(function () {
jest.restoreAllMocks()
});
});
__ mocks__ file
const driver = jest.genMockFromModule('cassandra-driver');
driver.Client = function () {return "cassandra_client"}
module.exports = driver;
Но я получаю сообщение об ошибке, в котором говорится, что «драйвер не является функцией», и это правда.
Как я могу издеваться над вызовом «driver.Client» тогда?
Пожалуйста, сообщите