UNPKG

sync-server

Version:

A simple server which can be used to synchronize data from Dexie.Syncable and an ISyncProtocol implementation and write them into files

89 lines (83 loc) 2.54 kB
'use strict'; const chakram = require('chakram'); const expect = chakram.expect; const ChangesTable = require('../../../lib/db_connectors/NeDB/changes_table'); describe('changesTable', () => { it('should be able to cope with mods including dots when adding a change', (done) => { const changesTable = new ChangesTable('changes', { inMemoryOnly: true }); changesTable .add({ mods: { 'foo.bar': 'foo', 'bar': 'baz', 'feb.bar': 'fe' } }) .then(() => { changesTable.store.find({}, (err, docs) => { if (err) { return done(err); } expect(docs[0].mods).to.deep.equal({ [`foo${changesTable.dotReplacer}bar`]: 'foo', bar: 'baz', [`feb${changesTable.dotReplacer}bar`]: 'fe', }); done(); }); }) .catch((e) => { done(e); }); }); it('should replace the dotReplacement with a real dot when changes are read getByRevision()', (done) => { const changesTable = new ChangesTable('changes', { inMemoryOnly: true }); const changeObject = { mods: { [`foo${changesTable.dotReplacer}bar`]: 'foo', bar: 'baz', [`feb${changesTable.dotReplacer}bar`]: 'fe', }, rev: 1, }; changesTable.store.insert(changeObject, (err) => { if (err) { return done(err); } changesTable.getByRevision(0) .then((data) => { expect(data[0].mods).to.deep.equal({ 'foo.bar': 'foo', bar: 'baz', 'feb.bar': 'fe', }); done(); }) .catch((err) => { done(err); }); }); }); it('should replace the dotReplacement with a real dot when changes are read getByRevisionAndClientID()', (done) => { const changesTable = new ChangesTable('changes', { inMemoryOnly: true }); const changeObject = { mods: { [`foo${changesTable.dotReplacer}bar`]: 'foo', bar: 'baz', [`feb${changesTable.dotReplacer}bar`]: 'fe' }, rev: 1, source: 0, }; changesTable.store.insert(changeObject, (err) => { if (err) { return done(err); } changesTable.getByRevisionAndClientID(0, 1) .then((data) => { expect(data[0].mods).to.deep.equal({ 'foo.bar': 'foo', bar: 'baz', 'feb.bar': 'fe', }); done(); }) .catch((err) => { done(err); }); }); }); });