File tree Expand file tree Collapse file tree 1 file changed +41
-0
lines changed
packages/core-data/src/utils/test Expand file tree Collapse file tree 1 file changed +41
-0
lines changed Original file line number Diff line number Diff line change @@ -169,6 +169,25 @@ describe( 'crdt', () => {
169169 expect ( metaMap . get ( 'some_meta' ) ) . toBe ( 'new value' ) ;
170170 } ) ;
171171
172+ it ( 'syncs non-single meta fields' , ( ) => {
173+ const changes = {
174+ meta : {
175+ some_meta : [ 'value' , 'value 2' ] ,
176+ } ,
177+ } ;
178+
179+ const metaMap = new Y . Map < unknown > ( ) ;
180+ metaMap . set ( 'some_meta' , 'old value' ) ;
181+ map . set ( 'meta' , metaMap ) ;
182+
183+ applyPostChangesToCRDTDoc ( doc , changes , mockPostType ) ;
184+
185+ expect ( metaMap . get ( 'some_meta' ) ) . toStrictEqual ( [
186+ 'value' ,
187+ 'value 2' ,
188+ ] ) ;
189+ } ) ;
190+
172191 it ( 'initializes meta as Y.Map when not present' , ( ) => {
173192 const changes = {
174193 meta : {
@@ -302,5 +321,27 @@ describe( 'crdt', () => {
302321 public_meta : 'new value' , // from CRDT
303322 } ) ;
304323 } ) ;
324+
325+ it ( 'includes non-single meta in changes' , ( ) => {
326+ map . set ( 'meta' , {
327+ public_meta : [ 'value' , 'value 2' ] ,
328+ } ) ;
329+
330+ const editedRecord = {
331+ meta : {
332+ public_meta : 'value' ,
333+ } ,
334+ } as unknown as Post ;
335+
336+ const changes = getPostChangesFromCRDTDoc (
337+ doc ,
338+ editedRecord ,
339+ mockPostType
340+ ) ;
341+
342+ expect ( changes . meta ) . toEqual ( {
343+ public_meta : [ 'value' , 'value 2' ] , // from CRDT
344+ } ) ;
345+ } ) ;
305346 } ) ;
306347} ) ;
You can’t perform that action at this time.
0 commit comments