Skip to content

Commit 6ec79a0

Browse files
committed
Add test for non-single meta
1 parent 6814b70 commit 6ec79a0

File tree

1 file changed

+41
-0
lines changed
  • packages/core-data/src/utils/test

1 file changed

+41
-0
lines changed

packages/core-data/src/utils/test/crdt.ts

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff 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
} );

0 commit comments

Comments
 (0)