mirror of
https://github.com/gosticks/wordpress-develop.git
synced 2025-10-16 12:05:38 +00:00
Includes the following changes:
- Upgrade Playwright to 1.30.0
- [Block Editor - Inserter]: preload media categories empty check - client side
- Navigation: Fixes undo and redo for nesting operations in the navigation block's inspector
- Fix: OffCanvasEditor does not inserts submenu on collapsed items.
- OffCanvasEditor: Only allow some blocks to be converted to submenus
- Navigation: Updates "Add Submenu item" text to "Add Submenu link"
- Update: Make OffCanvasEditor use LeafMoreMenu by default.
- Template Part: Performance: Replace usage of wp_get_theme()->get_stylesheet() with get_stylesheet()
- Widget Editor: Fix a problem with 'Move to Widget Area' button not working
- Reusable Blocks: Use React 18 rendering for import dropdown
- useAsyncList: flush state updates when processing queue
- Refactor the site editor URLs for better backward compatibility
- Template editor: only disable the save button if no changes rather than hiding it
- [Quote]: Fix deprectated large style specificity rule
- Style Book: Allow button text labels for style book icon
- List View: Scroll selected block into view when single block selection changes
- Post editor: revert iframed editor for WP core only
- Fix the Publish region position and focus style.
- Remove "& Shadow" from the Border ScreenHeader title
- Site editor: specify focus state color for template navigation button
References: [1e2b2f680c Gutenberg's commit for publishing the packages]
Props ntsekouras, ellatrix.
See #57471.
git-svn-id: https://develop.svn.wordpress.org/trunk@55392 602fd350-edb4-49c9-b593-d223f7449a82
136 lines
4.0 KiB
JavaScript
136 lines
4.0 KiB
JavaScript
import {
|
|
createNewPost,
|
|
pressKeyTimes,
|
|
publishPost,
|
|
trashAllPosts,
|
|
visitAdminPage,
|
|
} from '@wordpress/e2e-test-utils';
|
|
|
|
describe( 'Edit Posts', () => {
|
|
beforeEach( async () => {
|
|
await trashAllPosts();
|
|
} );
|
|
|
|
it( 'displays a message in the posts table when no posts are present', async () => {
|
|
await visitAdminPage( '/edit.php' );
|
|
const noPostsMessage = await page.$x(
|
|
'//td[text()="No posts found."]'
|
|
);
|
|
expect( noPostsMessage.length ).toBe( 1 );
|
|
} );
|
|
|
|
it( 'shows a single post after one is published with the correct title', async () => {
|
|
const title = 'Test Title';
|
|
await createNewPost( { title } );
|
|
await publishPost();
|
|
await visitAdminPage( '/edit.php' );
|
|
|
|
await page.waitForSelector( '#the-list .type-post' );
|
|
|
|
// Expect there to be one row in the post list.
|
|
const posts = await page.$$( '#the-list .type-post' );
|
|
expect( posts.length ).toBe( 1 );
|
|
|
|
const [ firstPost ] = posts;
|
|
|
|
// Expect the title of the post to be correct.
|
|
const postTitle = await firstPost.$x(
|
|
`//a[contains(@class, "row-title")][contains(text(), "${ title }")]`
|
|
);
|
|
expect( postTitle.length ).toBe( 1 );
|
|
} );
|
|
|
|
it( 'allows an existing post to be edited using the Edit button', async () => {
|
|
const title = 'Test Title';
|
|
await createNewPost( { title } );
|
|
await publishPost();
|
|
await visitAdminPage( '/edit.php' );
|
|
|
|
await page.waitForSelector( '#the-list .type-post' );
|
|
|
|
// Click the post title (edit) link
|
|
const [ editLink ] = await page.$x(
|
|
`//a[contains(@class, "row-title")][contains(text(), "${ title }")]`
|
|
);
|
|
await editLink.click();
|
|
|
|
// Edit the post.
|
|
await page.waitForNavigation();
|
|
|
|
// Wait for title field to render onscreen.
|
|
await page.waitForSelector( '.editor-post-title__input' );
|
|
|
|
// Expect to now be in the editor with the correct post title shown.
|
|
const editorPostTitleInput = await page.$x(
|
|
`//h1[contains(@class, "editor-post-title__input")][contains(text(), "${ title }")]`
|
|
);
|
|
expect( editorPostTitleInput.length ).toBe( 1 );
|
|
} );
|
|
|
|
it( 'allows an existing post to be quick edited using the Quick Edit button', async () => {
|
|
const title = 'Test Title';
|
|
await createNewPost( { title } );
|
|
await publishPost();
|
|
await visitAdminPage( '/edit.php' );
|
|
|
|
await page.waitForSelector( '#the-list .type-post' );
|
|
|
|
// Focus on the post title link.
|
|
const [ editLink ] = await page.$x(
|
|
`//a[contains(@class, "row-title")][contains(text(), "${ title }")]`
|
|
);
|
|
await editLink.focus();
|
|
|
|
// Tab to the Quick Edit button and press Enter to quick edit.
|
|
await pressKeyTimes( 'Tab', 2 );
|
|
await page.keyboard.press( 'Enter' );
|
|
|
|
// Type in the currently focused (title) field to modify the title, testing that focus is moved to the input.
|
|
await page.keyboard.type( ' Edited' );
|
|
|
|
// Update the post.
|
|
await page.click( '.button.save' );
|
|
|
|
// Wait for the quick edit button to reappear.
|
|
await page.waitForSelector( 'button.editinline', { visible: true } );
|
|
|
|
// Expect there to be one row in the post list.
|
|
const posts = await page.$$( '#the-list tr.type-post' );
|
|
expect( posts.length ).toBe( 1 );
|
|
|
|
const [ firstPost ] = posts;
|
|
|
|
// Expect the title of the post to be correct.
|
|
const postTitle = await firstPost.$x(
|
|
`//a[contains(@class, "row-title")][contains(text(), "${ title } Edited")]`
|
|
);
|
|
expect( postTitle.length ).toBe( 1 );
|
|
} );
|
|
it( 'allows an existing post to be deleted using the Trash button', async () => {
|
|
const title = 'Test Title';
|
|
await createNewPost( { title } );
|
|
await publishPost();
|
|
await visitAdminPage( '/edit.php' );
|
|
|
|
await page.waitForSelector( '#the-list .type-post' );
|
|
|
|
// Focus on the post title link.
|
|
const [ editLink ] = await page.$x(
|
|
`//a[contains(@class, "row-title")][contains(text(), "${ title }")]`
|
|
);
|
|
await editLink.focus();
|
|
|
|
// Tab to the Trash button and press Enter to delete the post.
|
|
await pressKeyTimes( 'Tab', 3 );
|
|
await page.keyboard.press( 'Enter' );
|
|
|
|
const noPostsMessage = await page.waitForSelector(
|
|
'#the-list .no-items td'
|
|
);
|
|
|
|
expect(
|
|
await noPostsMessage.evaluate( ( element ) => element.innerText )
|
|
).toBe( 'No posts found.' );
|
|
} );
|
|
} );
|