Skip to content

Commit bde0dd4

Browse files
committed
test: 💍 persist tests
1 parent b33d713 commit bde0dd4

File tree

2 files changed

+36
-6
lines changed

2 files changed

+36
-6
lines changed

src/json-crdt-repo/local/level/__tests__/LevelLocalRepo.pull.spec.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ describe('.pull()', () => {
2828
}
2929
});
3030
await kit.local.pull(kit.blockId);
31-
const get = await kit.local.get(kit.blockId);
31+
const get = await kit.local.get({id: kit.blockId});
3232
expect(get.model.view()).toEqual({foo: 'bar'});
3333
await kit.stop();
3434
});
@@ -90,19 +90,19 @@ describe('.pull()', () => {
9090
}],
9191
},
9292
});
93-
const get1 = await local.get(kit.blockId);
93+
const get1 = await local.get({id: kit.blockId});
9494
expect(get1.model.view()).toEqual({foo: 'bar'});
9595
let cnt = 0;
9696
kit.local.change$(kit.blockId).subscribe((event) => {
9797
if (!(event as LocalRepoMergeEvent).merge) return;
9898
cnt++;
9999
});
100100
await kit.local.pull(kit.blockId);
101-
const get2 = await local.get(kit.blockId);
101+
const get2 = await local.get({id: kit.blockId});
102102
expect(get2.model.view()).toEqual({foo: 'baz', x: 1});
103103
await kit.local.pull(kit.blockId);
104104
await kit.local.pull(kit.blockId);
105-
const get3 = await local.get(kit.blockId);
105+
const get3 = await local.get({id: kit.blockId});
106106
expect(get3.model.view()).toEqual({foo: 'baz', x: 1});
107107
await kit.stop();
108108
});
@@ -244,7 +244,7 @@ describe('.pull()', () => {
244244
expect(model.view()).toEqual({foo: 'bar'});
245245
for (const patch of event.merge) model.applyPatch(patch);
246246
expect(model.view()).toEqual({foo: 'baz', x: 1});
247-
const read = await kit.local.get(kit.blockId);
247+
const read = await kit.local.get({id: kit.blockId});
248248
expect(read.model.view()).toEqual({foo: 'baz', x: 1});
249249
await kit.stop();
250250
});
@@ -295,7 +295,7 @@ describe('.pull()', () => {
295295
expect(model.view()).toEqual({foo: 'bar'});
296296
model.reset(<Model<any>>event.reset);
297297
expect(model.view()).toEqual({foo: 'baz', x: 123});
298-
const read = await kit.local.get(kit.blockId);
298+
const read = await kit.local.get({id: kit.blockId});
299299
expect(read.model.view()).toEqual({foo: 'baz', x: 123});
300300
await kit.stop();
301301
});
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
import {s} from 'json-joy/lib/json-crdt';
2+
import {setup} from './setup';
3+
import {BehaviorSubject} from 'rxjs';
4+
import {until} from 'thingies';
5+
import {LocalRepoRebaseEvent} from '../../local/types';
6+
7+
describe('events', () => {
8+
test('emits "rebase" event on change', async () => {
9+
const kit = await setup({local: {connected$: new BehaviorSubject(false)}});
10+
const schema = s.obj({foo: s.con(1)});
11+
const session1 = kit.sessions.make({id: kit.blockId, schema});
12+
await session1.sync();
13+
const events: LocalRepoRebaseEvent[] = [];
14+
const sub = kit.local.change$(kit.blockId).subscribe((event) => {
15+
if ((event as LocalRepoRebaseEvent).rebase) events.push(event as LocalRepoRebaseEvent);
16+
});
17+
const model2 = session1.model.clone();
18+
session1.model.api.obj([]).set({foo: 2});
19+
await until(() => events.length === 1);
20+
const get1 = await kit.local.get({id: kit.blockId});
21+
expect(get1.model.view()).toEqual({foo: 2});
22+
const event = events[0];
23+
expect(model2.view()).toEqual({foo: 1});
24+
for (const patch of event.rebase) {
25+
model2.applyPatch(patch);
26+
}
27+
expect(model2.view()).toEqual({foo: 2});
28+
await kit.stop();
29+
});
30+
});

0 commit comments

Comments
 (0)