131 lines
3.1 KiB
JavaScript
131 lines
3.1 KiB
JavaScript
|
/**
|
||
|
* @format
|
||
|
*/
|
||
|
|
||
|
/**
|
||
|
* Internal dependencies
|
||
|
*/
|
||
|
import { clearAndFillInput } from './actions';
|
||
|
|
||
|
const config = require( 'config' );
|
||
|
const baseUrl = config.get( 'url' );
|
||
|
|
||
|
const WP_ADMIN_LOGIN = baseUrl + 'wp-login.php';
|
||
|
const WP_ADMIN_DASHBOARD = baseUrl + 'wp-admin';
|
||
|
const WP_ADMIN_PLUGINS = baseUrl + 'wp-admin/plugins.php';
|
||
|
const WP_ADMIN_SETUP_WIZARD = baseUrl + 'wp-admin/admin.php?page=wc-setup';
|
||
|
const WP_ADMIN_ALL_ORDERS_VIEW =
|
||
|
baseUrl + 'wp-admin/edit.php?post_type=shop_order';
|
||
|
const WP_ADMIN_NEW_COUPON =
|
||
|
baseUrl + 'wp-admin/post-new.php?post_type=shop_coupon';
|
||
|
const WP_ADMIN_NEW_ORDER =
|
||
|
baseUrl + 'wp-admin/post-new.php?post_type=shop_order';
|
||
|
const WP_ADMIN_NEW_PRODUCT =
|
||
|
baseUrl + 'wp-admin/post-new.php?post_type=product';
|
||
|
const WP_ADMIN_WC_SETTINGS =
|
||
|
baseUrl + 'wp-admin/admin.php?page=wc-settings&tab=';
|
||
|
const WP_ADMIN_PERMALINK_SETTINGS = baseUrl + 'wp-admin/options-permalink.php';
|
||
|
|
||
|
const WP_ADMIN_START_PROFILE_WIZARD =
|
||
|
baseUrl + 'wp-admin/admin.php?page=wc-admin&path=/setup-wizard';
|
||
|
|
||
|
const StoreOwnerFlow = {
|
||
|
login: async () => {
|
||
|
await page.goto( WP_ADMIN_LOGIN, {
|
||
|
waitUntil: 'networkidle0',
|
||
|
} );
|
||
|
|
||
|
await expect( page.title() ).resolves.toMatch( 'Log In' );
|
||
|
|
||
|
await clearAndFillInput( '#user_login', ' ' );
|
||
|
|
||
|
await page.type( '#user_login', config.get( 'users.admin.username' ) );
|
||
|
await page.type( '#user_pass', config.get( 'users.admin.password' ) );
|
||
|
|
||
|
await Promise.all( [
|
||
|
page.click( 'input[type=submit]' ),
|
||
|
page.waitForNavigation( { waitUntil: 'networkidle0' } ),
|
||
|
] );
|
||
|
},
|
||
|
|
||
|
logout: async () => {
|
||
|
// Log out link in admin bar is not visible so can't be clicked directly.
|
||
|
const logoutLinks = await page.$$eval(
|
||
|
'#wp-admin-bar-logout a',
|
||
|
( am ) => am.filter( ( e ) => e.href ).map( ( e ) => e.href )
|
||
|
);
|
||
|
|
||
|
await page.goto( logoutLinks[ 0 ], {
|
||
|
waitUntil: 'networkidle0',
|
||
|
} );
|
||
|
},
|
||
|
|
||
|
openAllOrdersView: async () => {
|
||
|
await page.goto( WP_ADMIN_ALL_ORDERS_VIEW, {
|
||
|
waitUntil: 'networkidle0',
|
||
|
} );
|
||
|
},
|
||
|
|
||
|
openDashboard: async () => {
|
||
|
await page.goto( WP_ADMIN_DASHBOARD, {
|
||
|
waitUntil: 'networkidle0',
|
||
|
} );
|
||
|
},
|
||
|
|
||
|
openNewCoupon: async () => {
|
||
|
await page.goto( WP_ADMIN_NEW_COUPON, {
|
||
|
waitUntil: 'networkidle0',
|
||
|
} );
|
||
|
},
|
||
|
|
||
|
openNewOrder: async () => {
|
||
|
await page.goto( WP_ADMIN_NEW_ORDER, {
|
||
|
waitUntil: 'networkidle0',
|
||
|
} );
|
||
|
},
|
||
|
|
||
|
openNewProduct: async () => {
|
||
|
await page.goto( WP_ADMIN_NEW_PRODUCT, {
|
||
|
waitUntil: 'networkidle0',
|
||
|
} );
|
||
|
},
|
||
|
|
||
|
openPermalinkSettings: async () => {
|
||
|
await page.goto( WP_ADMIN_PERMALINK_SETTINGS, {
|
||
|
waitUntil: 'networkidle0',
|
||
|
} );
|
||
|
},
|
||
|
|
||
|
openPlugins: async () => {
|
||
|
await page.goto( WP_ADMIN_PLUGINS, {
|
||
|
waitUntil: 'networkidle0',
|
||
|
} );
|
||
|
},
|
||
|
|
||
|
openSettings: async ( tab, section = null ) => {
|
||
|
let settingsUrl = WP_ADMIN_WC_SETTINGS + tab;
|
||
|
|
||
|
if ( section ) {
|
||
|
settingsUrl += `§ion=${ section }`;
|
||
|
}
|
||
|
|
||
|
await page.goto( settingsUrl, {
|
||
|
waitUntil: 'networkidle0',
|
||
|
} );
|
||
|
},
|
||
|
|
||
|
runSetupWizard: async () => {
|
||
|
await page.goto( WP_ADMIN_SETUP_WIZARD, {
|
||
|
waitUntil: 'networkidle0',
|
||
|
} );
|
||
|
},
|
||
|
|
||
|
startProfileWizard: async () => {
|
||
|
await page.goto( WP_ADMIN_START_PROFILE_WIZARD, {
|
||
|
waitUntil: 'networkidle0',
|
||
|
} );
|
||
|
},
|
||
|
};
|
||
|
|
||
|
export { StoreOwnerFlow };
|