Skip to content

Commit

Permalink
Add: Generic end 2 end test to the block transforms.
Browse files Browse the repository at this point in the history
  • Loading branch information
jorgefilipecosta committed Mar 20, 2019
1 parent c34d6b7 commit ea59dfc
Show file tree
Hide file tree
Showing 6 changed files with 596 additions and 34 deletions.
82 changes: 48 additions & 34 deletions packages/e2e-test-utils/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,7 @@ Clicks on More Menu item, searches for the button with the text provided and cli

### createEmbeddingMatcher

[src/index.js#L51-L51](src/index.js#L51-L51)
[src/index.js#L52-L52](src/index.js#L52-L52)

Creates a function to determine if a request is embedding a certain URL.

Expand All @@ -102,7 +102,7 @@ Creates a function to determine if a request is embedding a certain URL.

### createJSONResponse

[src/index.js#L51-L51](src/index.js#L51-L51)
[src/index.js#L52-L52](src/index.js#L52-L52)

Respond to a request with a JSON response.

Expand Down Expand Up @@ -141,7 +141,7 @@ Creates new URL by parsing base URL, WPPath and query string.

### createURLMatcher

[src/index.js#L51-L51](src/index.js#L51-L51)
[src/index.js#L52-L52](src/index.js#L52-L52)

Creates a function to determine if a request is calling a URL with the substring present.

Expand Down Expand Up @@ -251,10 +251,24 @@ that the current selected block can be transformed into.

`Promise`: Promise resolving with an array containing all possible block transforms

### getEditedPostContent
### getBlockTitle

[src/index.js#L21-L21](src/index.js#L21-L21)

Returns a string containing the block title associated with the provided block name.

**Parameters**

- **blockName** `string`: Block name.

**Returns**

`Promise`: Promise resolving with a string containing the block title.

### getEditedPostContent

[src/index.js#L22-L22](src/index.js#L22-L22)

Returns a promise which resolves with the edited post content (HTML string).

**Returns**
Expand All @@ -263,7 +277,7 @@ Returns a promise which resolves with the edited post content (HTML string).

### hasBlockSwitcher

[src/index.js#L22-L22](src/index.js#L22-L22)
[src/index.js#L23-L23](src/index.js#L23-L23)

Returns a boolean indicating if the current selected block has a block switcher or not.

Expand All @@ -273,7 +287,7 @@ Returns a boolean indicating if the current selected block has a block switcher

### insertBlock

[src/index.js#L23-L23](src/index.js#L23-L23)
[src/index.js#L24-L24](src/index.js#L24-L24)

Opens the inserter, searches for the given term, then selects the first
result that appears.
Expand All @@ -285,7 +299,7 @@ result that appears.

### installPlugin

[src/index.js#L24-L24](src/index.js#L24-L24)
[src/index.js#L25-L25](src/index.js#L25-L25)

Installs a plugin from the WP.org repository.

Expand All @@ -296,7 +310,7 @@ Installs a plugin from the WP.org repository.

### isCurrentURL

[src/index.js#L25-L25](src/index.js#L25-L25)
[src/index.js#L26-L26](src/index.js#L26-L26)

Checks if current URL is a WordPress path.

Expand All @@ -311,7 +325,7 @@ Checks if current URL is a WordPress path.

### isInDefaultBlock

[src/index.js#L26-L26](src/index.js#L26-L26)
[src/index.js#L27-L27](src/index.js#L27-L27)

Checks if the block that is focused is the default block.

Expand All @@ -321,7 +335,7 @@ Checks if the block that is focused is the default block.

### loginUser

[src/index.js#L27-L27](src/index.js#L27-L27)
[src/index.js#L28-L28](src/index.js#L28-L28)

Performs log in with specified username and password.

Expand All @@ -332,7 +346,7 @@ Performs log in with specified username and password.

### mockOrTransform

[src/index.js#L51-L51](src/index.js#L51-L51)
[src/index.js#L52-L52](src/index.js#L52-L52)

Mocks a request with the supplied mock object, or allows it to run with an optional transform, based on the
deserialised JSON response for the request.
Expand All @@ -349,38 +363,38 @@ deserialised JSON response for the request.

### observeFocusLoss

[src/index.js#L28-L28](src/index.js#L28-L28)
[src/index.js#L29-L29](src/index.js#L29-L29)

Binds to the document on page load which throws an error if a `focusout`
event occurs without a related target (i.e. focus loss).

### openAllBlockInserterCategories

[src/index.js#L29-L29](src/index.js#L29-L29)
[src/index.js#L30-L30](src/index.js#L30-L30)

Opens all block inserter categories.

### openDocumentSettingsSidebar

[src/index.js#L30-L30](src/index.js#L30-L30)
[src/index.js#L31-L31](src/index.js#L31-L31)

Clicks on the button in the header which opens Document Settings sidebar when it is closed.

### openGlobalBlockInserter

[src/index.js#L31-L31](src/index.js#L31-L31)
[src/index.js#L32-L32](src/index.js#L32-L32)

Opens the global block inserter.

### openPublishPanel

[src/index.js#L32-L32](src/index.js#L32-L32)
[src/index.js#L33-L33](src/index.js#L33-L33)

Opens the publish panel.

### pressKeyTimes

[src/index.js#L33-L33](src/index.js#L33-L33)
[src/index.js#L34-L34](src/index.js#L34-L34)

Presses the given keyboard key a number of times in sequence.

Expand All @@ -395,7 +409,7 @@ Presses the given keyboard key a number of times in sequence.

### pressKeyWithModifier

[src/index.js#L34-L34](src/index.js#L34-L34)
[src/index.js#L35-L35](src/index.js#L35-L35)

Performs a key press with modifier (Shift, Control, Meta, Alt), where each modifier
is normalized to platform-specific modifier.
Expand All @@ -407,7 +421,7 @@ is normalized to platform-specific modifier.

### publishPost

[src/index.js#L35-L35](src/index.js#L35-L35)
[src/index.js#L36-L36](src/index.js#L36-L36)

Publishes the post, resolving once the request is complete (once a notice
is displayed).
Expand All @@ -418,7 +432,7 @@ is displayed).

### publishPostWithPrePublishChecksDisabled

[src/index.js#L36-L36](src/index.js#L36-L36)
[src/index.js#L37-L37](src/index.js#L37-L37)

Publishes the post without the pre-publish checks,
resolving once the request is complete (once a notice is displayed).
Expand All @@ -429,7 +443,7 @@ resolving once the request is complete (once a notice is displayed).

### saveDraft

[src/index.js#L37-L37](src/index.js#L37-L37)
[src/index.js#L38-L38](src/index.js#L38-L38)

Saves the post as a draft, resolving once the request is complete (once the
"Saved" indicator is displayed).
Expand All @@ -440,7 +454,7 @@ Saves the post as a draft, resolving once the request is complete (once the

### searchForBlock

[src/index.js#L38-L38](src/index.js#L38-L38)
[src/index.js#L39-L39](src/index.js#L39-L39)

Search for block in the global inserter

Expand All @@ -450,7 +464,7 @@ Search for block in the global inserter

### selectBlockByClientId

[src/index.js#L39-L39](src/index.js#L39-L39)
[src/index.js#L40-L40](src/index.js#L40-L40)

Given the clientId of a block, selects the block on the editor.

Expand All @@ -460,7 +474,7 @@ Given the clientId of a block, selects the block on the editor.

### setBrowserViewport

[src/index.js#L40-L40](src/index.js#L40-L40)
[src/index.js#L41-L41](src/index.js#L41-L41)

Sets browser viewport to specified type.

Expand All @@ -470,7 +484,7 @@ Sets browser viewport to specified type.

### setPostContent

[src/index.js#L41-L41](src/index.js#L41-L41)
[src/index.js#L42-L42](src/index.js#L42-L42)

Sets code editor content

Expand All @@ -484,7 +498,7 @@ Sets code editor content

### setUpResponseMocking

[src/index.js#L51-L51](src/index.js#L51-L51)
[src/index.js#L52-L52](src/index.js#L52-L52)

Sets up mock checks and responses. Accepts a list of mock settings with the following properties:

Expand Down Expand Up @@ -515,7 +529,7 @@ If none of the mock settings match the request, the request is allowed to contin

### switchEditorModeTo

[src/index.js#L42-L42](src/index.js#L42-L42)
[src/index.js#L43-L43](src/index.js#L43-L43)

Switches editor mode.

Expand All @@ -525,21 +539,21 @@ Switches editor mode.

### switchUserToAdmin

[src/index.js#L43-L43](src/index.js#L43-L43)
[src/index.js#L44-L44](src/index.js#L44-L44)

Switches the current user to the admin user (if the user
running the test is not already the admin user).

### switchUserToTest

[src/index.js#L44-L44](src/index.js#L44-L44)
[src/index.js#L45-L45](src/index.js#L45-L45)

Switches the current user to whichever user we should be
running the tests as (if we're not already that user).

### toggleScreenOption

[src/index.js#L45-L45](src/index.js#L45-L45)
[src/index.js#L46-L46](src/index.js#L46-L46)

Toggles the screen option with the given label.

Expand All @@ -550,7 +564,7 @@ Toggles the screen option with the given label.

### transformBlockTo

[src/index.js#L46-L46](src/index.js#L46-L46)
[src/index.js#L47-L47](src/index.js#L47-L47)

Converts editor's block type.

Expand All @@ -560,7 +574,7 @@ Converts editor's block type.

### uninstallPlugin

[src/index.js#L47-L47](src/index.js#L47-L47)
[src/index.js#L48-L48](src/index.js#L48-L48)

Uninstalls a plugin.

Expand All @@ -570,7 +584,7 @@ Uninstalls a plugin.

### visitAdminPage

[src/index.js#L48-L48](src/index.js#L48-L48)
[src/index.js#L49-L49](src/index.js#L49-L49)

Visits admin page; if user is not logged in then it logging in it first, then visits admin page.

Expand All @@ -581,7 +595,7 @@ Visits admin page; if user is not logged in then it logging in it first, then vi

### waitForWindowDimensions

[src/index.js#L49-L49](src/index.js#L49-L49)
[src/index.js#L50-L50](src/index.js#L50-L50)

Function that waits until the page viewport has the required dimensions.
It is being used to address a problem where after using setViewport the execution may continue,
Expand Down
11 changes: 11 additions & 0 deletions packages/e2e-test-utils/src/get-block-title.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
/**
* Returns a string containing the block title associated with the provided block name.
* @param {string} blockName Block name.
*
* @return {Promise} Promise resolving with a string containing the block title.
*/
export async function getBlockTitle( blockName ) {
return page.evaluate( ( _blockName ) => {
return wp.data.select( 'core/blocks' ).getBlockType( _blockName ).title;
}, blockName );
}
1 change: 1 addition & 0 deletions packages/e2e-test-utils/src/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ export { findSidebarPanelWithTitle } from './find-sidebar-panel-with-title';
export { getAllBlockInserterItemTitles } from './get-all-block-inserter-item-titles';
export { getAllBlocks } from './get-all-blocks';
export { getAvailableBlockTransforms } from './get-available-block-transforms';
export { getBlockTitle } from './get-block-title';
export { getEditedPostContent } from './get-edited-post-content';
export { hasBlockSwitcher } from './has-block-switcher';
export { insertBlock } from './insert-block';
Expand Down
Loading

0 comments on commit ea59dfc

Please sign in to comment.