Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add e2e test for publishing a page #9090

Merged
merged 2 commits into from
Aug 17, 2018
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();
} );
} );
} );