From 205d4b7e66b30ec911e8968a736593aaf2be1567 Mon Sep 17 00:00:00 2001 From: Ivan Voskoboinyk Date: Wed, 22 Dec 2021 14:02:50 +0200 Subject: [PATCH] Add tests for Editor.unhangRange() (#4703) * Add tests for Editor.unhangRange() * Extend tests for `Editor.unhangRange()` to cover voids * Fix lint * Add changeset --- .changeset/soft-trees-taste.md | 5 ++++ ...ck-hanging-over-void-with-voids-option.tsx | 26 +++++++++++++++++ .../unhangRange/block-hanging-over-void.tsx | 26 +++++++++++++++++ .../Editor/unhangRange/block-hanging.tsx | 25 +++++++++++++++++ .../Editor/unhangRange/collapsed.tsx | 19 +++++++++++++ .../Editor/unhangRange/text-hanging.tsx | 28 +++++++++++++++++++ .../void-hanging-with-voids-option.tsx | 25 +++++++++++++++++ .../Editor/unhangRange/void-hanging.tsx | 25 +++++++++++++++++ 8 files changed, 179 insertions(+) create mode 100644 .changeset/soft-trees-taste.md create mode 100644 packages/slate/test/interfaces/Editor/unhangRange/block-hanging-over-void-with-voids-option.tsx create mode 100644 packages/slate/test/interfaces/Editor/unhangRange/block-hanging-over-void.tsx create mode 100644 packages/slate/test/interfaces/Editor/unhangRange/block-hanging.tsx create mode 100644 packages/slate/test/interfaces/Editor/unhangRange/collapsed.tsx create mode 100644 packages/slate/test/interfaces/Editor/unhangRange/text-hanging.tsx create mode 100644 packages/slate/test/interfaces/Editor/unhangRange/void-hanging-with-voids-option.tsx create mode 100644 packages/slate/test/interfaces/Editor/unhangRange/void-hanging.tsx diff --git a/.changeset/soft-trees-taste.md b/.changeset/soft-trees-taste.md new file mode 100644 index 000000000..42c1aa06c --- /dev/null +++ b/.changeset/soft-trees-taste.md @@ -0,0 +1,5 @@ +--- +'slate': patch +--- + +Add tests for Editor.unhangRange() behavior diff --git a/packages/slate/test/interfaces/Editor/unhangRange/block-hanging-over-void-with-voids-option.tsx b/packages/slate/test/interfaces/Editor/unhangRange/block-hanging-over-void-with-voids-option.tsx new file mode 100644 index 000000000..6c8da25c9 --- /dev/null +++ b/packages/slate/test/interfaces/Editor/unhangRange/block-hanging-over-void-with-voids-option.tsx @@ -0,0 +1,26 @@ +/** @jsx jsx */ +import { Editor } from 'slate' +import { jsx } from '../../..' + +export const input = ( + + + + This is a first paragraph + + This is the second paragraph + + + + + +) + +export const test = editor => { + return Editor.unhangRange(editor, editor.selection, { voids: true }) +} + +export const output = { + anchor: { path: [0, 0], offset: 0 }, + focus: { path: [1, 0], offset: 28 }, +} diff --git a/packages/slate/test/interfaces/Editor/unhangRange/block-hanging-over-void.tsx b/packages/slate/test/interfaces/Editor/unhangRange/block-hanging-over-void.tsx new file mode 100644 index 000000000..c764b120c --- /dev/null +++ b/packages/slate/test/interfaces/Editor/unhangRange/block-hanging-over-void.tsx @@ -0,0 +1,26 @@ +/** @jsx jsx */ +import { Editor } from 'slate' +import { jsx } from '../../..' + +export const input = ( + + + + This is a first paragraph + + This is the second paragraph + + + + + +) + +export const test = editor => { + return Editor.unhangRange(editor, editor.selection) +} + +export const output = { + anchor: { path: [0, 0], offset: 0 }, + focus: { path: [1, 0], offset: 28 }, +} diff --git a/packages/slate/test/interfaces/Editor/unhangRange/block-hanging.tsx b/packages/slate/test/interfaces/Editor/unhangRange/block-hanging.tsx new file mode 100644 index 000000000..df5bc8d34 --- /dev/null +++ b/packages/slate/test/interfaces/Editor/unhangRange/block-hanging.tsx @@ -0,0 +1,25 @@ +/** @jsx jsx */ +import { Editor } from 'slate' +import { jsx } from '../../..' + +export const input = ( + + + + word + + + + another + + +) + +export const test = editor => { + return Editor.unhangRange(editor, editor.selection) +} + +export const output = { + anchor: { path: [0, 0], offset: 0 }, + focus: { path: [0, 0], offset: 4 }, +} diff --git a/packages/slate/test/interfaces/Editor/unhangRange/collapsed.tsx b/packages/slate/test/interfaces/Editor/unhangRange/collapsed.tsx new file mode 100644 index 000000000..faa8a7833 --- /dev/null +++ b/packages/slate/test/interfaces/Editor/unhangRange/collapsed.tsx @@ -0,0 +1,19 @@ +/** @jsx jsx */ +import { Editor } from 'slate' +import { jsx } from '../../..' + +export const input = ( + + + one + + + +) +export const test = editor => { + return Editor.unhangRange(editor, editor.selection) +} +export const output = { + anchor: { path: [0, 0], offset: 3 }, + focus: { path: [0, 0], offset: 3 }, +} diff --git a/packages/slate/test/interfaces/Editor/unhangRange/text-hanging.tsx b/packages/slate/test/interfaces/Editor/unhangRange/text-hanging.tsx new file mode 100644 index 000000000..1deb83c1f --- /dev/null +++ b/packages/slate/test/interfaces/Editor/unhangRange/text-hanging.tsx @@ -0,0 +1,28 @@ +/** @jsx jsx */ +import { Editor } from 'slate' +import { jsx } from '../../..' + +export const input = ( + + + + before + + + selected + + + after + + + +) + +export const test = editor => { + return Editor.unhangRange(editor, editor.selection) +} + +export const output = { + anchor: { path: [0, 0], offset: 6 }, + focus: { path: [0, 2], offset: 0 }, +} diff --git a/packages/slate/test/interfaces/Editor/unhangRange/void-hanging-with-voids-option.tsx b/packages/slate/test/interfaces/Editor/unhangRange/void-hanging-with-voids-option.tsx new file mode 100644 index 000000000..5a659b928 --- /dev/null +++ b/packages/slate/test/interfaces/Editor/unhangRange/void-hanging-with-voids-option.tsx @@ -0,0 +1,25 @@ +/** @jsx jsx */ +import { Editor } from 'slate' +import { jsx } from '../../..' + +export const input = ( + + + + This is a first paragraph + + This is the second paragraph + + + + +) + +export const test = editor => { + return Editor.unhangRange(editor, editor.selection, { voids: true }) +} + +export const output = { + anchor: { path: [0, 0], offset: 0 }, + focus: { path: [1, 0], offset: 28 }, +} diff --git a/packages/slate/test/interfaces/Editor/unhangRange/void-hanging.tsx b/packages/slate/test/interfaces/Editor/unhangRange/void-hanging.tsx new file mode 100644 index 000000000..b5b18fb09 --- /dev/null +++ b/packages/slate/test/interfaces/Editor/unhangRange/void-hanging.tsx @@ -0,0 +1,25 @@ +/** @jsx jsx */ +import { Editor } from 'slate' +import { jsx } from '../../..' + +export const input = ( + + + + This is a first paragraph + + This is the second paragraph + + + + +) + +export const test = editor => { + return Editor.unhangRange(editor, editor.selection) +} + +export const output = { + anchor: { path: [0, 0], offset: 0 }, + focus: { path: [0, 0], offset: 25 }, +}