fix: Draft comment on text gets into a strange state when unfocused (#5153)

This commit is contained in:
Tom Moor
2023-04-05 09:02:26 -04:00
committed by GitHub
parent 3ca86bcc0c
commit 2458085eed
2 changed files with 219 additions and 13 deletions

View File

@@ -0,0 +1,184 @@
import { Node } from "prosemirror-model";
import ProsemirrorHelper from "@shared/utils/ProsemirrorHelper";
import { schema } from "@server/editor";
// Note: The test is here rather than shared to access the schema
describe("#ProsemirrorHelper", () => {
describe("#trim", () => {
it("Does not remove single paragraph", () => {
const doc = Node.fromJSON(schema, {
type: "doc",
content: [
{
type: "paragraph",
content: [
{
type: "text",
text: " ",
},
],
},
],
});
expect(ProsemirrorHelper.trim(doc).toJSON()).toEqual({
type: "doc",
content: [
{
type: "paragraph",
content: [
{
type: "text",
text: " ",
},
],
},
],
});
});
it("Removes empty first paragraph", () => {
const doc = Node.fromJSON(schema, {
type: "doc",
content: [
{
type: "paragraph",
content: [
{
type: "text",
text: " ",
},
],
},
{
type: "paragraph",
content: [
{
type: "text",
text: "one",
},
],
},
],
});
expect(ProsemirrorHelper.trim(doc).toJSON()).toEqual({
type: "doc",
content: [
{
type: "paragraph",
content: [
{
type: "text",
text: "one",
},
],
},
],
});
});
it("Removes empty last paragraph", () => {
const doc = Node.fromJSON(schema, {
type: "doc",
content: [
{
type: "paragraph",
content: [
{
type: "text",
text: "nice",
},
],
},
{
type: "paragraph",
content: [
{
type: "text",
text: " ",
},
],
},
],
});
expect(ProsemirrorHelper.trim(doc).toJSON()).toEqual({
type: "doc",
content: [
{
type: "paragraph",
content: [
{
type: "text",
text: "nice",
},
],
},
],
});
});
it("Removes multiple empty paragraphs", () => {
const doc = Node.fromJSON(schema, {
type: "doc",
content: [
{
type: "paragraph",
},
{
type: "paragraph",
content: [
{
type: "text",
text: " ",
},
],
},
{
type: "paragraph",
content: [
{
type: "text",
text: "nice",
},
],
},
{
type: "paragraph",
content: [
{
type: "text",
text: " ",
},
],
},
{
type: "paragraph",
content: [
{
type: "text",
text: " ",
},
],
},
],
});
expect(ProsemirrorHelper.trim(doc).toJSON()).toEqual({
type: "doc",
content: [
{
type: "paragraph",
content: [
{
type: "text",
text: "nice",
},
],
},
],
});
});
});
});