rxdb
Version:
A local-first realtime NoSQL Database for JavaScript applications - https://rxdb.info/
49 lines (48 loc) • 1.53 kB
JavaScript
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.ensureCollectionsHaveEqualState = ensureCollectionsHaveEqualState;
exports.ensureReplicationHasNoErrors = ensureReplicationHasNoErrors;
exports.testMultipleTimes = testMultipleTimes;
var _assert = _interopRequireDefault(require("assert"));
var _index = require("../utils/index.js");
function testMultipleTimes(times, title, test) {
new Array(times).fill(0).forEach(() => {
it(title, test);
});
}
async function ensureCollectionsHaveEqualState(c1, c2) {
await (0, _index.requestIdlePromise)();
var getJson = async collection => {
var docs = await collection.find().exec();
return docs.map(d => d.toJSON());
};
var json1 = await getJson(c1);
var json2 = await getJson(c2);
try {
_assert.default.deepStrictEqual(json1, json2);
} catch (err) {
console.error('ensureCollectionsHaveEqualState() states not equal:');
console.dir({
[c1.name]: json1,
[c2.name]: json2
});
throw err;
}
}
function ensureReplicationHasNoErrors(replicationState) {
/**
* We do not have to unsubscribe because the observable will cancel anyway.
*/
replicationState.error$.subscribe(err => {
console.error('ensureReplicationHasNoErrors() has error:');
console.log(err);
if (err?.parameters?.errors) {
throw err.parameters.errors[0];
}
throw err;
});
}
//# sourceMappingURL=test-util.js.map
;