Как смоделировать sqlitePlugin и openDatabase в Cordova
Я не могу смоделировать значения для плагина cordova-sqlite-storage
, Я попробовал в моем setup.js
файл, используя напрямую
import Enzyme from 'enzyme'
import Adapter from 'enzyme-adapter-react-16'
Enzyme.configure({ adapter: new Adapter() })
window.cordova = true
// const myDb = {
// name: 'test',
// location:'default'
// }
// const dbSuccess = function () {
// console.log('DB opened successfully')
// }
// const dbError = function(error) {
// console.log('Error while opening DB=' + error.message)
// }
window.sqlitePlugin.openDatabase = function (myDb, dbSuccess, dbError) {}
Но, похоже, это неправильный способ издеваться над ними.
И без насмешек, когда я запускаю тестовые случаи, выдает ошибку как
● Test suite failed to run
TypeError: Cannot set property 'openDatabase' of undefined
И класс, который я использую, выглядит следующим образом:
class DbCore {
constructor() {
this.db = window.sqlitePlugin.openDatabase(
{
name: DB_NAME,
location: DB_LOCATION
}, function () {
console.log('Database ready to use')
}, function (error) {
console.log('Error while opening database=>' + error.message)
}
)
}
InvalidCallbackException(message) {
this.message = message
this.name = 'InvalidCallbackException'
}
closeDatabase(success, error) {
if (this.db === null || typeof this.db === 'undefined') {
success()
}
if (typeof success !== 'function' || typeof error !== 'function') {
throw new this.InvalidCallbackException('parameter is not callback function')
}
this.db.close(function () {
console.log('Successfully database closed')
success()
}, function (e) {
console.log('Error while closing databasse=>' + e.message)
error()
})
}
.
.
.
}
Я не могу найти, как смоделировать переменные и методы sqlite, а также я новичок в JavaScript.