51 lines
1.3 KiB
TypeScript
51 lines
1.3 KiB
TypeScript
import * as Automerge from 'automerge';
|
|
import assert = require('assert');
|
|
|
|
import { Dispatcher, toIndexKey, fromIndexKey } from '../src/dispatch';
|
|
import { User } from '../src/assets/user';
|
|
import { Syncable, ArgPair } from '../src/sync';
|
|
|
|
import { MockSigner, MockStore } from './mock';
|
|
|
|
describe('basic', () => {
|
|
|
|
it('store', () => {
|
|
const store = new MockStore('s');
|
|
assert.equal(store.name, 's');
|
|
|
|
const mockSigner = new MockSigner();
|
|
const v = new Syncable('foo', {baz: 42});
|
|
v.setSigner(mockSigner);
|
|
store.put('foo', v);
|
|
const one = store.get('foo').toJSON();
|
|
const vv = new Syncable('bar', {baz: 666});
|
|
vv.setSigner(mockSigner);
|
|
assert.throws(() => {
|
|
store.put('foo', vv)
|
|
});
|
|
store.put('foo', vv, true);
|
|
const other = store.get('foo').toJSON();
|
|
assert.notEqual(one, other);
|
|
store.delete('foo');
|
|
assert.equal(store.get('foo'), undefined);
|
|
});
|
|
|
|
it('add_doc_to_dispatcher', () => {
|
|
const store = new MockStore('s');
|
|
//const syncer = new MockSyncer();
|
|
const dispatcher = new Dispatcher(store, undefined);
|
|
const user = new User('foo');
|
|
dispatcher.add(user.id, user);
|
|
assert(dispatcher.isDirty());
|
|
});
|
|
|
|
it('dispatch_keyindex', () => {
|
|
const s = 'foo';
|
|
const k = toIndexKey(s);
|
|
const v = fromIndexKey(k);
|
|
assert.equal(s, v);
|
|
});
|
|
|
|
|
|
});
|