diff --git a/src/__test__/plugin.test.js b/src/__test__/plugin.test.js index 9989a95..c9fcf8e 100755 --- a/src/__test__/plugin.test.js +++ b/src/__test__/plugin.test.js @@ -430,7 +430,7 @@ describe("draft-js-markdown-plugin", () => { afterEach(() => { CheckableListItemUtils.toggleChecked.mockRestore(); }); - it("returns renderer", () => { + it("returns renderer", async () => { type = "checkable-list-item"; data = { checked: true }; const renderer = subject(); @@ -438,7 +438,11 @@ describe("draft-js-markdown-plugin", () => { expect(renderer.component).toBe(CheckableListItem); expect(typeof renderer.props.onChangeChecked).toBe("function"); expect(renderer.props.checked).toBe(true); - renderer.props.onChangeChecked(); + const event = new Event("change", { bubbles: true }); + + event.simulated = true; + renderer.props.onChangeChecked(event); + await new Promise(resolve => setTimeout(() => resolve())); expect(spyOnChangeChecked).toHaveBeenCalledWith( currentEditorState, block diff --git a/src/index.js b/src/index.js index d183e22..3bd3bc1 100755 --- a/src/index.js +++ b/src/index.js @@ -297,10 +297,17 @@ const createMarkdownPlugin = (_config = {}) => { return { component: CheckableListItem, props: { - onChangeChecked: () => - setEditorState( - CheckableListItemUtils.toggleChecked(getEditorState(), block) - ), + onChangeChecked: e => { + e.preventDefault(); + setTimeout(() => + setEditorState( + CheckableListItemUtils.toggleChecked( + getEditorState(), + block + ) + ) + ); + }, checked: !!block.getData().get("checked"), }, };