1+ import { PatchBuilder } from '../../../json-crdt-patch' ;
12import { Model , ModelChangeType } from '../Model' ;
23
34describe ( 'DOM Level 0, .onchange event system' , ( ) => {
@@ -8,13 +9,17 @@ describe('DOM Level 0, .onchange event system', () => {
89 cnt ++ ;
910 } ;
1011 expect ( cnt ) . toBe ( 0 ) ;
11- model . api . root ( { foo : 'bar' } ) ;
12+ const builder = new PatchBuilder ( model . clock . clone ( ) ) ;
13+ const objId = builder . json ( { foo : 123 } ) ;
14+ builder . root ( objId ) ;
15+ model . applyPatch ( builder . flush ( ) ) ;
1216 expect ( cnt ) . toBe ( 1 ) ;
13- model . api . obj ( [ ] ) . set ( { hello : 123 } ) ;
17+ builder . insObj ( objId , [ [ 'hello' , builder . const ( 456 ) ] ] ) ;
18+ model . applyPatch ( builder . flush ( ) ) ;
1419 expect ( cnt ) . toBe ( 2 ) ;
1520 expect ( model . view ( ) ) . toStrictEqual ( {
16- foo : 'bar' ,
17- hello : 123 ,
21+ foo : 123 ,
22+ hello : 456 ,
1823 } ) ;
1924 } ) ;
2025
@@ -25,9 +30,12 @@ describe('DOM Level 0, .onchange event system', () => {
2530 cnt ++ ;
2631 } ;
2732 expect ( cnt ) . toBe ( 0 ) ;
28- model . api . root ( { foo : 123 } ) ;
33+ const builder = new PatchBuilder ( model . clock . clone ( ) ) ;
34+ builder . root ( builder . json ( { foo : 123 } ) ) ;
35+ model . applyPatch ( builder . flush ( ) ) ;
2936 expect ( cnt ) . toBe ( 1 ) ;
30- model . api . obj ( [ ] ) . set ( { foo : 123 } ) ;
37+ builder . root ( builder . json ( { foo : 123 } ) ) ;
38+ model . applyPatch ( builder . flush ( ) ) ;
3139 expect ( cnt ) . toBe ( 2 ) ;
3240 } ) ;
3341
@@ -38,9 +46,13 @@ describe('DOM Level 0, .onchange event system', () => {
3846 cnt ++ ;
3947 } ;
4048 expect ( cnt ) . toBe ( 0 ) ;
41- model . api . root ( { foo : 123 } ) ;
49+ const builder = new PatchBuilder ( model . clock . clone ( ) ) ;
50+ const objId = builder . json ( { foo : 123 } ) ;
51+ builder . root ( objId ) ;
52+ model . applyPatch ( builder . flush ( ) ) ;
4253 expect ( cnt ) . toBe ( 1 ) ;
43- model . api . obj ( [ ] ) . set ( { foo : undefined } ) ;
54+ builder . insObj ( objId , [ [ 'foo' , builder . const ( undefined ) ] ] ) ;
55+ model . applyPatch ( builder . flush ( ) ) ;
4456 expect ( cnt ) . toBe ( 2 ) ;
4557 expect ( model . view ( ) ) . toStrictEqual ( { } ) ;
4658 } ) ;
@@ -52,9 +64,13 @@ describe('DOM Level 0, .onchange event system', () => {
5264 cnt ++ ;
5365 } ;
5466 expect ( cnt ) . toBe ( 0 ) ;
55- model . api . root ( { foo : 123 } ) ;
67+ const builder = new PatchBuilder ( model . clock . clone ( ) ) ;
68+ const objId = builder . json ( { foo : 123 } ) ;
69+ builder . root ( objId ) ;
70+ model . applyPatch ( builder . flush ( ) ) ;
5671 expect ( cnt ) . toBe ( 1 ) ;
57- model . api . obj ( [ ] ) . set ( { bar : undefined } ) ;
72+ builder . insObj ( objId , [ [ 'bar' , builder . const ( undefined ) ] ] ) ;
73+ model . applyPatch ( builder . flush ( ) ) ;
5874 expect ( cnt ) . toBe ( 2 ) ;
5975 expect ( model . view ( ) ) . toStrictEqual ( { foo : 123 } ) ;
6076 } ) ;
@@ -66,38 +82,28 @@ describe('DOM Level 0, .onchange event system', () => {
6682 cnt ++ ;
6783 } ;
6884 expect ( cnt ) . toBe ( 0 ) ;
69- model . api . root ( { foo : 123 } ) ;
85+ const builder = new PatchBuilder ( model . clock . clone ( ) ) ;
86+ const objId = builder . json ( { foo : 123 } ) ;
87+ builder . root ( objId ) ;
88+ model . applyPatch ( builder . flush ( ) ) ;
7089 expect ( cnt ) . toBe ( 1 ) ;
71- model . api . root ( 123 ) ;
90+ builder . root ( builder . json ( 123 ) ) ;
91+ model . applyPatch ( builder . flush ( ) ) ;
7292 expect ( cnt ) . toBe ( 2 ) ;
73- model . api . root ( 'asdf' ) ;
93+ builder . root ( builder . json ( 'asdf' ) ) ;
94+ model . applyPatch ( builder . flush ( ) ) ;
7495 expect ( cnt ) . toBe ( 3 ) ;
7596 } ) ;
7697
7798 describe ( 'event types' , ( ) => {
78- it ( 'should trigger the onchange event with a LOCAL event type' , ( ) => {
79- const model = Model . withLogicalClock ( ) ;
80- let cnt = 0 ;
81- model . onchange = ( type ) => {
82- expect ( type ) . toBe ( ModelChangeType . LOCAL ) ;
83- cnt ++ ;
84- } ;
85- expect ( cnt ) . toBe ( 0 ) ;
86- model . api . root ( { foo : 123 } ) ;
87- expect ( cnt ) . toBe ( 1 ) ;
88- model . api . obj ( [ ] ) . set ( { foo : 55 } ) ;
89- expect ( cnt ) . toBe ( 2 ) ;
90- expect ( model . view ( ) ) . toStrictEqual ( { foo : 55 } ) ;
91- } ) ;
92-
9399 it ( 'should trigger the onchange event with a REMOTE event type' , ( ) => {
94100 const model = Model . withLogicalClock ( ) ;
95101 let cnt = 0 ;
96102 model . onchange = ( type ) => {
97103 expect ( type ) . toBe ( ModelChangeType . REMOTE ) ;
98104 cnt ++ ;
99105 } ;
100- const builder = model . api . builder ;
106+ const builder = new PatchBuilder ( model . clock . clone ( ) ) ;
101107 builder . root ( builder . json ( { foo : 123 } ) ) ;
102108 const patch = builder . flush ( ) ;
103109 expect ( cnt ) . toBe ( 0 ) ;
0 commit comments