From dba8ab947fef64ce4d482045941aa8f6ed153818 Mon Sep 17 00:00:00 2001 From: Dan Brown Date: Fri, 20 Sep 2024 15:31:19 +0100 Subject: [PATCH] Lexical: Finished conversion/update of test files --- jest.config.ts | 9 +- .../lexical/core/__tests__/utils/index.ts | 8 + .../__tests__/unit/LexicalTextNode.test.ts | 1 - .../lexical/core/shared/react-test-utils.ts | 18 - .../unit/LexicalAutoLinkNode.test.ts | 2 +- .../__tests__/unit/LexicalLinkNode.test.ts | 2 +- .../unit/LexicalListItemNode.test.ts | 182 ++- .../wysiwyg/lexical/list/__tests__/utils.ts | 33 - ...tion.test.tsx => LexicalSelection.test.ts} | 1074 ++++++----------- ...Node.test.tsx => LexicalTableNode.test.ts} | 206 ---- ...test.tsx => LexicalTableSelection.test.ts} | 61 +- ...s.test.tsx => LexicalEventHelpers.test.ts} | 191 +-- .../__tests__/unit/LexicalRootHelpers.test.ts | 35 +- ...test.tsx => LexicalUtilsSplitNode.test.ts} | 0 ...xlcaiUtilsInsertNodeToNearestRoot.test.ts} | 0 15 files changed, 578 insertions(+), 1244 deletions(-) delete mode 100644 resources/js/wysiwyg/lexical/core/shared/react-test-utils.ts delete mode 100644 resources/js/wysiwyg/lexical/list/__tests__/utils.ts rename resources/js/wysiwyg/lexical/selection/__tests__/unit/{LexicalSelection.test.tsx => LexicalSelection.test.ts} (73%) rename resources/js/wysiwyg/lexical/table/__tests__/unit/{LexicalTableNode.test.tsx => LexicalTableNode.test.ts} (53%) rename resources/js/wysiwyg/lexical/table/__tests__/unit/{LexicalTableSelection.test.tsx => LexicalTableSelection.test.ts} (73%) rename resources/js/wysiwyg/lexical/utils/__tests__/unit/{LexicalEventHelpers.test.tsx => LexicalEventHelpers.test.ts} (85%) rename resources/js/wysiwyg/lexical/utils/__tests__/unit/{LexicalUtilsSplitNode.test.tsx => LexicalUtilsSplitNode.test.ts} (100%) rename resources/js/wysiwyg/lexical/utils/__tests__/unit/{LexlcaiUtilsInsertNodeToNearestRoot.test.tsx => LexlcaiUtilsInsertNodeToNearestRoot.test.ts} (100%) diff --git a/jest.config.ts b/jest.config.ts index 11a86c672..3c04f05b2 100644 --- a/jest.config.ts +++ b/jest.config.ts @@ -21,7 +21,7 @@ const config: Config = { clearMocks: true, // Indicates whether the coverage information should be collected while executing the test - collectCoverage: true, + collectCoverage: false, // An array of glob patterns indicating a set of files for which coverage information should be collected // collectCoverageFrom: undefined, @@ -164,10 +164,9 @@ const config: Config = { // testLocationInResults: false, // The glob patterns Jest uses to detect test files - // testMatch: [ - // "**/__tests__/**/*.[jt]s?(x)", - // "**/?(*.)+(spec|test).[tj]s?(x)" - // ], + testMatch: [ + "**/__tests__/**/*.test.[jt]s", + ], // An array of regexp pattern strings that are matched against all test paths, matched tests are skipped // testPathIgnorePatterns: [ diff --git a/resources/js/wysiwyg/lexical/core/__tests__/utils/index.ts b/resources/js/wysiwyg/lexical/core/__tests__/utils/index.ts index 30b0bc8c8..f7230595a 100644 --- a/resources/js/wysiwyg/lexical/core/__tests__/utils/index.ts +++ b/resources/js/wysiwyg/lexical/core/__tests__/utils/index.ts @@ -717,3 +717,11 @@ export function html( } return output; } + +export function expectHtmlToBeEqual(expected: string, actual: string): void { + expect(formatHtml(expected)).toBe(formatHtml(actual)); +} + +function formatHtml(s: string): string { + return s.replace(/>\s+<').replace(/\s*\n\s*/g, ' ').trim(); +} \ No newline at end of file diff --git a/resources/js/wysiwyg/lexical/core/nodes/__tests__/unit/LexicalTextNode.test.ts b/resources/js/wysiwyg/lexical/core/nodes/__tests__/unit/LexicalTextNode.test.ts index 337c96a41..57e1dcb3b 100644 --- a/resources/js/wysiwyg/lexical/core/nodes/__tests__/unit/LexicalTextNode.test.ts +++ b/resources/js/wysiwyg/lexical/core/nodes/__tests__/unit/LexicalTextNode.test.ts @@ -21,7 +21,6 @@ import { TextModeType, TextNode, } from 'lexical'; -import * as ReactTestUtils from 'lexical/shared/react-test-utils'; import { $createTestSegmentedNode, diff --git a/resources/js/wysiwyg/lexical/core/shared/react-test-utils.ts b/resources/js/wysiwyg/lexical/core/shared/react-test-utils.ts deleted file mode 100644 index 8e086744d..000000000 --- a/resources/js/wysiwyg/lexical/core/shared/react-test-utils.ts +++ /dev/null @@ -1,18 +0,0 @@ -/** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - * - */ -import * as React from 'react'; -import * as ReactTestUtils from 'react-dom/test-utils'; - -/** - * React 19 moved act from react-dom/test-utils to react - * https://react.dev/blog/2024/04/25/react-19-upgrade-guide#removed-react-dom-test-utils - */ -export const act = - 'act' in React - ? (React.act as typeof ReactTestUtils.act) - : ReactTestUtils.act; diff --git a/resources/js/wysiwyg/lexical/link/__tests__/unit/LexicalAutoLinkNode.test.ts b/resources/js/wysiwyg/lexical/link/__tests__/unit/LexicalAutoLinkNode.test.ts index ffcefd7c8..0f3513682 100644 --- a/resources/js/wysiwyg/lexical/link/__tests__/unit/LexicalAutoLinkNode.test.ts +++ b/resources/js/wysiwyg/lexical/link/__tests__/unit/LexicalAutoLinkNode.test.ts @@ -19,7 +19,7 @@ import { ParagraphNode, SerializedParagraphNode, TextNode, -} from 'lexical/src'; +} from 'lexical'; import {initializeUnitTest} from 'lexical/__tests__/utils'; const editorConfig = Object.freeze({ diff --git a/resources/js/wysiwyg/lexical/link/__tests__/unit/LexicalLinkNode.test.ts b/resources/js/wysiwyg/lexical/link/__tests__/unit/LexicalLinkNode.test.ts index fe978849b..1aff91863 100644 --- a/resources/js/wysiwyg/lexical/link/__tests__/unit/LexicalLinkNode.test.ts +++ b/resources/js/wysiwyg/lexical/link/__tests__/unit/LexicalLinkNode.test.ts @@ -19,7 +19,7 @@ import { ParagraphNode, SerializedParagraphNode, TextNode, -} from 'lexical/src'; +} from 'lexical'; import {initializeUnitTest} from 'lexical/__tests__/utils'; const editorConfig = Object.freeze({ diff --git a/resources/js/wysiwyg/lexical/list/__tests__/unit/LexicalListItemNode.test.ts b/resources/js/wysiwyg/lexical/list/__tests__/unit/LexicalListItemNode.test.ts index a1ccd5020..22e555f35 100644 --- a/resources/js/wysiwyg/lexical/list/__tests__/unit/LexicalListItemNode.test.ts +++ b/resources/js/wysiwyg/lexical/list/__tests__/unit/LexicalListItemNode.test.ts @@ -62,7 +62,7 @@ describe('LexicalListItemNode tests', () => { expectHtmlToBeEqual( listItemNode.createDOM(editorConfig).outerHTML, html` -
  • +
  • `, ); @@ -90,7 +90,7 @@ describe('LexicalListItemNode tests', () => { expectHtmlToBeEqual( domElement.outerHTML, html` -
  • +
  • `, ); const newListItemNode = new ListItemNode(); @@ -106,7 +106,7 @@ describe('LexicalListItemNode tests', () => { expectHtmlToBeEqual( domElement.outerHTML, html` -
  • +
  • `, ); }); @@ -125,7 +125,7 @@ describe('LexicalListItemNode tests', () => { expectHtmlToBeEqual( domElement.outerHTML, html` -
  • +
  • `, ); const nestedListNode = new ListNode('bullet', 1); @@ -142,9 +142,7 @@ describe('LexicalListItemNode tests', () => { expectHtmlToBeEqual( domElement.outerHTML, html` -
  • +
  • `, ); }); @@ -184,13 +182,13 @@ describe('LexicalListItemNode tests', () => { style="user-select: text; white-space: pre-wrap; word-break: break-word;" data-lexical-editor="true"> @@ -217,13 +215,13 @@ describe('LexicalListItemNode tests', () => { style="user-select: text; white-space: pre-wrap; word-break: break-word;" data-lexical-editor="true"> @@ -247,13 +245,13 @@ describe('LexicalListItemNode tests', () => { style="user-select: text; white-space: pre-wrap; word-break: break-word;" data-lexical-editor="true"> @@ -273,12 +271,12 @@ describe('LexicalListItemNode tests', () => { contenteditable="true" style="user-select: text; white-space: pre-wrap; word-break: break-word;" data-lexical-editor="true"> -


    +


    @@ -303,14 +301,14 @@ describe('LexicalListItemNode tests', () => { style="user-select: text; white-space: pre-wrap; word-break: break-word;" data-lexical-editor="true"> -


    +


    `, ); @@ -332,13 +330,13 @@ describe('LexicalListItemNode tests', () => { style="user-select: text; white-space: pre-wrap; word-break: break-word;" data-lexical-editor="true"> -


    +


    @@ -363,7 +361,7 @@ describe('LexicalListItemNode tests', () => { style="user-select: text; white-space: pre-wrap; word-break: break-word;" data-lexical-editor="true"> @@ -383,7 +381,7 @@ describe('LexicalListItemNode tests', () => { contenteditable="true" style="user-select: text; white-space: pre-wrap; word-break: break-word;" data-lexical-editor="true"> -


    +


    `, ); @@ -423,13 +421,13 @@ describe('LexicalListItemNode tests', () => { style="user-select: text; white-space: pre-wrap; word-break: break-word;" data-lexical-editor="true"> @@ -447,10 +445,10 @@ describe('LexicalListItemNode tests', () => { style="user-select: text; white-space: pre-wrap; word-break: break-word;" data-lexical-editor="true"> @@ -497,15 +495,15 @@ describe('LexicalListItemNode tests', () => { @@ -525,12 +523,12 @@ describe('LexicalListItemNode tests', () => { @@ -575,15 +573,15 @@ describe('LexicalListItemNode tests', () => { style="user-select: text; white-space: pre-wrap; word-break: break-word;" data-lexical-editor="true">