/** * 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 { selectAll, toggleBold, toggleItalic, toggleUnderline, } from '../keyboardShortcuts/index.mjs'; import { assertHTML, clearEditor, focusEditor, html, initialize, pasteFromClipboard, selectFromAdditionalStylesDropdown, selectFromBackgroundColorPicker, selectFromColorPicker, test, waitForSelector, } from '../utils/index.mjs'; test.describe('Clear All Formatting', () => { test.beforeEach(({isPlainText, isCollab, page}) => { test.skip(isPlainText); return initialize({isCollab, page}); }); test(`Can clear BIU formatting`, async ({page}) => { await focusEditor(page); await page.keyboard.type('Hello'); await toggleBold(page); await page.keyboard.type(' World'); await toggleItalic(page); await toggleUnderline(page); await page.keyboard.type(' Test'); await selectAll(page); await selectFromAdditionalStylesDropdown(page, '.clear'); await assertHTML( page, html`

Hello World Test

`, ); }); test(`Should preserve the default styling of links and quoted text`, async ({ page, }) => { await focusEditor(page); const clipboard = { 'text/html': 'Facebook!', }; await pasteFromClipboard(page, clipboard); await selectAll(page); await toggleBold(page); await toggleItalic(page); await toggleUnderline(page); await selectFromColorPicker(page); await selectFromAdditionalStylesDropdown(page, '.clear'); await assertHTML( page, html`

Facebook!

`, ); await clearEditor(page); await page.keyboard.type('> Testing for quote node'); await selectAll(page); await toggleBold(page); await toggleItalic(page); await toggleUnderline(page); await selectFromBackgroundColorPicker(page); await selectFromColorPicker(page); await selectFromAdditionalStylesDropdown(page, '.clear'); await assertHTML( page, html`
Testing for quote node
`, ); }); test( `Should preserve the default styling of hashtags and mentions`, { tag: '@flaky', }, async ({page}) => { await focusEditor(page); await page.keyboard.type('#facebook testing'); await selectAll(page); await toggleItalic(page); await selectFromBackgroundColorPicker(page); await selectFromColorPicker(page); await selectFromAdditionalStylesDropdown(page, '.clear'); await assertHTML( page, html`

#facebook testing

`, ); await clearEditor(page); await page.keyboard.type('@Luke'); await waitForSelector(page, '#typeahead-menu ul li'); await assertHTML( page, html`

@Luke

`, ); await page.keyboard.press('Enter'); await assertHTML( page, html`

Luke Skywalker

`, ); await page.keyboard.type(' is testing'); await selectAll(page); await toggleBold(page); await selectFromColorPicker(page); await selectFromAdditionalStylesDropdown(page, '.clear'); await assertHTML( page, html`

Luke Skywalker is testing

`, ); }, ); });