feat(editor): support delete in flat block proxy (#9994)

This commit is contained in:
Saul-Mirone
2025-02-06 16:30:06 +00:00
parent 86de184593
commit 5b750bbba4
2 changed files with 103 additions and 4 deletions

View File

@@ -452,6 +452,33 @@ describe('flat', () => {
expect.anything()
);
onChange.mockClear();
onColUpdated.mockClear();
delete (model.props.cols.a as Record<string, unknown>).color;
expect(yBlock.get('prop:cols.a.color')).toBe(undefined);
expect(model.props.cols.a).toEqual({});
expect(model.props.cols$.value).toEqual({ a: {} });
expect(onColUpdated).toHaveBeenCalledTimes(1);
expect(onChange).toHaveBeenCalledTimes(1);
expect(onChange).toHaveBeenCalledWith(
expect.anything(),
'cols',
expect.anything()
);
model.props.cols = {
a: { color: 'red' },
b: { color: 'blue' },
};
onChange.mockClear();
onColUpdated.mockClear();
delete (model.props as Record<string, unknown>).cols;
expect(model.props.cols$.value).toBeUndefined();
expect(yBlock.get('prop:cols.a.color')).toBe(undefined);
expect(yBlock.get('prop:cols.b.color')).toBe(undefined);
expect(onColUpdated).toHaveBeenCalledTimes(1);
expect(onChange).toHaveBeenCalledTimes(1);
onChange.mockClear();
model.props.title.insert('test', 0);
expect((yBlock.get('prop:title') as Y.Text).toJSON()).toBe('test');
@@ -483,6 +510,16 @@ describe('flat', () => {
'labels',
expect.anything()
);
onChange.mockClear();
model.props.labels.splice(0, 1);
expect(getLabels().toJSON()).toEqual([]);
expect(model.props.labels$.value).toEqual([]);
expect(onChange).toHaveBeenCalledWith(
expect.anything(),
'labels',
expect.anything()
);
});
test('stash and pop', () => {