woocommerce/plugins/woocommerce-beta-tester
Paul Sealock 8a30e307b6 changelog 2022-06-08 13:33:59 +12:00
..
.github Add GitHub templates for issues and PRs 2021-12-24 16:45:52 +00:00
.wordpress-org .org assets 2018-06-07 15:01:32 +01:00
api Move admin tester folders to root 2022-06-07 15:18:37 +12:00
assets add right margin to version modal header 2020-09-22 13:42:51 -03:00
bin Standardize Beta Tester build scripts 2022-04-21 11:17:59 +12:00
changelog changelog 2022-06-08 13:33:59 +12:00
images Move admin tester folders to root 2022-06-07 15:18:37 +12:00
includes Lower case string comparison for versions (https://github.com/woocommerce/woocommerce-beta-tester/pull/105) 2021-11-18 13:49:46 +01:00
src Remove duplicated src folder/ 2022-06-08 13:31:16 +12:00
.distignore Add support for Woorelease (https://github.com/woocommerce/woocommerce-beta-tester/pull/88) 2021-01-19 13:56:37 +01:00
.editorconfig Introduced .editorconfig 2018-06-04 16:06:33 -03:00
.eslintignore Copy eslint ignores to beta-tester 2022-06-07 15:13:14 +12:00
.eslintrc Copy eslint ignores to beta-tester 2022-06-07 15:13:14 +12:00
.gitignore Copy git ignores to beta-tester 2022-06-07 15:14:21 +12:00
.travis.yml Install composer packages on Travis build to be able to use phpcs 2019-03-13 16:42:52 -03:00
README.md Move plugin.php and readme 2022-06-07 15:55:26 +12:00
changelog.txt Product version bump update 2021-12-17 14:13:06 -04:00
composer.json Update woocommerce sniffs to latest 0.1.3 (#32886) 2022-05-06 12:48:46 +12:00
composer.lock Update woocommerce sniffs to latest 0.1.3 (#32886) 2022-05-06 12:48:46 +12:00
package.json downgrade to @wordpress/scripts 19.2.4 2022-06-08 09:14:50 +12:00
phpcs.xml Composer dependencies 2018-06-04 16:06:43 -03:00
plugin.php Move plugin.php and readme 2022-06-07 15:55:26 +12:00
project.json add build to project.json 2022-04-21 11:47:49 +12:00
readme.txt Product version bump update 2021-12-17 14:13:06 -04:00
webpack.config.js Move admin tester folders to root 2022-06-07 15:18:37 +12:00
woocommerce-beta-tester.php Move plugin.php and readme 2022-06-07 15:55:26 +12:00

README.md

WooCommerce Admin Test Helper

A plugin that makes it easier to test the WooCommerce Admin plugin.

Development

To get started, run the following commands:

npm install
npm start

See wp-scripts for more usage information.

Extending

There are two client-side filters available if you want to extend the test helper with your own plugin's test setup code.

This example adds a new tab:

import { addFilter } from '@wordpress/hooks';

const SuperSekret = () => (
	<>
		<h2>Super sekret</h2>
		<p>This section contains super sekret tools.</p>
		<NewTool/>
	</>
);
addFilter(
	'woocommerce_admin_test_helper_tabs',
	'wath',
	( tabs ) => [
		...tabs,
		{
			name: 'super-sekret',
			title: 'Super sekret',
			content: <SuperSekret/>,
		}
	]
);

This example adds a new tool to the existing Options tab:

import { addFilter } from '@wordpress/hooks';

const NewTool = () => (
	<>
		<strong>New tool</strong>
		<p>Description</p>
		<button>Execute</button>
	</>
);
addFilter(
	'woocommerce_admin_test_helper_tab_options',
	'wath',
	( entries ) => [
		...entries,
		<NewTool/>
	]
);

Register a REST API endpoint to perform server-side actions in the usual way:

add_action( 'rest_api_init', function() {
    register_rest_route(
        'your-plugin/v1',
        '/area/action',
        array(
            'methods' => 'POST',
            'callback' => 'your_plugin_area_action',
            'permission_callback' => function( $request ) {
                if ( ! wc_rest_check_manager_permissions( 'settings', 'edit ) ) {
                    return new \WP_Error(
                        'woocommerce_rest_cannot_edit',
                        __( 'Sorry, you cannot perform this action', 'your-plugin' )
                    );
                }
                return true;
            }
        )
    );
} );

function your_plugin_area_action() {
    return [];
}

This would be used on the client like this:

import apiFetch from '@wordpress/api-fetch';
...
const response = await apiFetch( {
    path: '/your-plugin/v1/area/action',
    method: 'POST',
} );

Deploying

Prerequisites:

  • Hub
  • Write access to this repository

You can create a test ZIP of the plugin using this command:

npm run build

This creates woocommerce-admin-test-helper.zip in the project root.

We release the plugin using GitHub Releases. There is a script to automate this:

  1. Make sure the version is updated in woocommerce-admin-test-helper.php and package.json
  2. Commit and push to trunk
  3. Run npm run release
  4. Make sure you provide the correct version number when prompted
  5. That's it!