Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
45 changes: 34 additions & 11 deletions test/e2e/specs/publishing.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,22 +7,45 @@ import {
} from '../support/utils';

describe( 'Publishing', () => {
beforeEach( async () => {
await newPost();
describe( 'a post', () => {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

FWIW we could avoid code duplication by iterating types if all other logic is basically the same:

[ 'post', 'page' ].forEach( ( postType ) => {
	describe( postType, () => {
		beforeEach( async () => {
			await newPost( postType );
		} );

		// ...
	} );
} );

beforeEach( async () => {
await newPost();
} );

it( 'should publish a post and close the panel once we start editing again', async () => {
await page.type( '.editor-post-title__input', 'E2E Test Post' );

await publishPost();

// The post-publishing panel is visible.
expect( await page.$( '.editor-post-publish-panel' ) ).not.toBeNull();

// Start editing again.
await page.type( '.editor-post-title__input', ' (Updated)' );

// The post-publishing panel is not visible anymore.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This doesn't really feel like a test related to the publishing of a post in the first place, but I get it was like that when you got here 😄

expect( await page.$( '.editor-post-publish-panel' ) ).toBeNull();
} );
} );

it( 'Should publish a post and close the panel once we start editing again', async () => {
await page.type( '.editor-post-title__input', 'E2E Test Post' );
describe( 'a page', () => {
beforeEach( async () => {
await newPost( 'page' );
} );

it( 'should publish a page and close the panel once we start editing again', async () => {
await page.type( '.editor-post-title__input', 'E2E Test Page' );

await publishPost();
await publishPost();

// The post publish panel is visible
expect( await page.$( '.editor-post-publish-panel' ) ).not.toBeNull();
// The post-publishing panel is visible.
expect( await page.$( '.editor-post-publish-panel' ) ).not.toBeNull();

// Start editing again
await page.type( '.editor-post-title__input', ' (Updated)' );
// Start editing the page again.
await page.type( '.editor-post-title__input', ' (Updated)' );

// The post publish panel is not visible anymore
expect( await page.$( '.editor-post-publish-panel' ) ).toBeNull();
// The post-publishing panel is not visible anymore.
expect( await page.$( '.editor-post-publish-panel' ) ).toBeNull();
} );
} );
} );