Как смоделировать 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.

0 ответов

Другие вопросы по тегам