minimongo
Version:
Client-side mongo database with server sync over http
131 lines (115 loc) • 3.16 kB
text/typescript
// TODO: This file was created by bulk-decaffeinate.
// Sanity-check the conversion and remove this comment.
import chai from "chai"
const { assert } = chai
import ReplicatingDb from "../src/ReplicatingDb"
import MemoryDb from "../src/MemoryDb"
import db_queries from "./db_queries"
import db_caching from "./db_caching"
import _ from "lodash"
import async from "async"
function error(err: any) {
console.log(err)
return assert.fail(JSON.stringify(err))
}
describe("ReplicatingDb", function () {
describe("passes queries", function (this: any) {
before(function (
this: any,
this: any,
this: any,
this: any,
this: any,
this: any,
this: any,
this: any,
this: any,
this: any,
this: any,
this: any,
done: any
) {
this.reset = (done: any) => {
this.masterDb = new MemoryDb()
this.replicaDb = new MemoryDb()
this.masterDb.addCollection("scratch")
this.replicaDb.addCollection("scratch")
this.db = new ReplicatingDb(this.masterDb, this.replicaDb)
this.db.addCollection("scratch")
this.col = this.db.scratch
done()
}
return this.reset(done)
})
return db_queries.call(this)
})
describe("passes caching", function (this: any) {
before(function (
this: any,
this: any,
this: any,
this: any,
this: any,
this: any,
this: any,
this: any,
this: any,
this: any,
this: any,
this: any,
done: any
) {
this.reset = (done: any) => {
this.masterDb = new MemoryDb()
this.replicaDb = new MemoryDb()
this.masterDb.addCollection("scratch")
this.replicaDb.addCollection("scratch")
this.db = new ReplicatingDb(this.masterDb, this.replicaDb)
this.db.addCollection("scratch")
this.col = this.db.scratch
done()
}
return this.reset(done)
})
return db_caching.call(this)
})
return describe("passes caching with find on replica", function (this: any) {
before(function (
this: any,
this: any,
this: any,
this: any,
this: any,
this: any,
this: any,
this: any,
this: any,
this: any,
this: any,
this: any,
this: any,
this: any,
this: any,
this: any,
this: any,
this: any,
done: any
) {
this.reset = (done: any) => {
this.masterDb = new MemoryDb()
this.replicaDb = new MemoryDb()
this.masterDb.addCollection("scratch")
this.replicaDb.addCollection("scratch")
this.db = new ReplicatingDb(this.masterDb, this.replicaDb)
this.db.addCollection("scratch")
this.col = this.db.scratch
// Use replica to ensure that caching works on replica too
this.db.scratch.find = this.replicaDb.scratch.find.bind(this.replicaDb.scratch)
this.db.scratch.findOne = this.replicaDb.scratch.findOne.bind(this.replicaDb.scratch)
done()
}
return this.reset(done)
})
return db_caching.call(this)
})
})