@x5e/gink
Version:
an eventually consistent database
34 lines • 1.6 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const Store_test_1 = require("./Store.test");
const implementation_1 = require("../implementation");
(0, Store_test_1.testStore)("MemoryStore", async () => new implementation_1.MemoryStore(true));
it("test basic operations", async () => {
const store = new implementation_1.MemoryStore(true);
const instance = new implementation_1.Database({ store });
await instance.ready;
const dir = implementation_1.Directory.get(instance);
await dir.set("foo", "bar");
const beforeSecondSet = (0, implementation_1.generateTimestamp)();
await dir.set("foo", "baz");
const entries = store.getAllEntries();
(0, implementation_1.ensure)(entries.length === 2);
const removals = store.getAllRemovals();
(0, implementation_1.ensure)(removals.size === 1, `removals.size is ${removals.size}, expected 1`);
/*
await memStore.dropHistory();
const entriesAfterDrop = memStore.getAllEntryKeys();
ensure(Array.from(entriesAfterDrop).length === 1);
ensure(!await dir.has("foo", beforeSecondSet));
*/
});
it("tests getEntryByKey and getKeyedEntries", async () => {
const store = new implementation_1.MemoryStore(true);
const instance = new implementation_1.Database({ store });
await instance.ready;
const dir = implementation_1.Directory.get(instance);
const id = await dir.set("foo", "bar");
await dir.set("bar", "foo");
(0, implementation_1.ensure)((await store.getKeyedEntries(dir.address)).size === 2);
});
//# sourceMappingURL=MemoryStore.test.js.map