我正在尝试通过Jest测试涵盖从RxDB获取数据的redux-saga。
export function* checkUnsavedData(action) {
const { tab } = action;
try {
const db = yield getDB().catch(e => {
throw new Error(e);
});
const currentUser = yield select(makeSelectCurrentUser());
const unsavedData = yield db[USER_COLLECTION].findOne(currentUser)
.exec()
.then(data => data && data.unsavedData)
.catch(e => {
throw new Error(e);
});
} catch (error) {
yield showError(error);
}
}
在实时运行中一切都很好。但是测试我得到的发电机:
UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 2): Error: Error: RxError:
RxDatabase.create(): Adapter not added. Use RxDB.plugin(require('pouchdb-adapter-[adaptername]');
Given parameters: {
adapter:"idb"}
如果有人这样做,请告诉我如何在Jest的redux-saga中使用RxDB测试此类情况。
答案 0 :(得分:1)
似乎您没有将适配器添加到RxDB。您可以将代码粘贴到创建数据库的位置吗?这将有助于发现错误。
运行测试时,不应使用idb-adapter。使用in-memory-adapter,它更快,而且您可以确保在每次测试运行时都从干净状态开始。