import "jest"; import { EditorState } from "prosemirror-state"; import * as operation from "../operation"; import { describeRootsFactory, EditorStateFactory, editorStateFactoryFactory } from "./buildEditorState"; import "./expect.toMatchEditorState"; const describeDocRoots = describeRootsFactory([["doc", editorStateFactoryFactory(children => ({ doc }) => doc(children))]]); function runSelectDocStartSuite(build: EditorStateFactory) { function test(initial: EditorState, expected: EditorState) { const tr = initial.tr; operation.selectDocStart(tr); expect(initial.apply(tr)).toMatchEditorState(expected); } it("middle selection", () => { test(build(({ p }) => p("te{^}xt")), build(({ p }) => p("{^}text"))); }); } function runSelectDocEndSuite(build: EditorStateFactory) { function test(initial: EditorState, expected: EditorState) { const tr = initial.tr; operation.selectDocEnd(tr); expect(initial.apply(tr)).toMatchEditorState(expected); } it("middle selection", () => { test(build(({ p }) => p("te{^}xt")), build(({ p }) => p("text{^}"))); }); } describeDocRoots(build => { describe(operation.selectDocStart.name, () => { runSelectDocStartSuite(build); }); }); describeDocRoots(build => { describe(operation.selectDocEnd.name, () => { runSelectDocEndSuite(build); }); });