woocommerce/plugins/woocommerce-admin/client/layout/test/index.js

61 lines
1.9 KiB
JavaScript
Raw Normal View History

/** @format */
/**
* Internal dependencies
*/
import { updateLinkHref } from '../controller';
describe( 'updateLinkHref', () => {
const timeExcludedScreens = [ 'devdocs', 'stock', 'settings', 'customers' ];
2019-06-13 19:58:21 +00:00
const REPORT_URL = 'http://example.com/wp-admin/admin.php?page=wc-admin&path=/analytics/orders';
const DASHBOARD_URL = 'http://example.com/wp-admin/admin.php?page=wc-admin';
const REPORT_URL_TIME_EXCLUDED =
'http://example.com/wp-admin/admin.php?page=wc-admin&path=/analytics/settings';
const WOO_URL = 'http://example.com/wp-admin/edit.php?post_type=shop_coupon';
const WP_ADMIN_URL = 'http://example.com/wp-admin/edit-comments.php';
2019-06-13 19:58:21 +00:00
const nextQuery = {
fruit: 'apple',
dish: 'cobbler',
2019-06-13 19:58:21 +00:00
};
it( 'should update report urls', () => {
const item = { href: REPORT_URL };
updateLinkHref( item, nextQuery, timeExcludedScreens );
2019-06-13 19:58:21 +00:00
const encodedPath = encodeURIComponent( '/analytics/orders' );
expect( item.href ).toBe(
2019-06-13 19:58:21 +00:00
`admin.php?page=wc-admin&path=${ encodedPath }&fruit=apple&dish=cobbler`
);
} );
it( 'should update dashboard urls', () => {
const item = { href: DASHBOARD_URL };
updateLinkHref( item, nextQuery, timeExcludedScreens );
2019-06-13 19:58:21 +00:00
expect( item.href ).toBe( 'admin.php?page=wc-admin&fruit=apple&dish=cobbler' );
} );
2019-06-13 19:58:21 +00:00
it( 'should not add the nextQuery to a time excluded screen', () => {
const item = { href: REPORT_URL_TIME_EXCLUDED };
updateLinkHref( item, nextQuery, timeExcludedScreens );
2019-06-13 19:58:21 +00:00
const encodedPath = encodeURIComponent( '/analytics/settings' );
2019-06-13 19:58:21 +00:00
expect( item.href ).toBe( `admin.php?page=wc-admin&path=${ encodedPath }` );
} );
it( 'should not update WooCommerce urls', () => {
const item = { href: WOO_URL };
updateLinkHref( item, nextQuery, timeExcludedScreens );
expect( item.href ).toBe( WOO_URL );
} );
it( 'should not update wp-admin urls', () => {
const item = { href: WP_ADMIN_URL };
updateLinkHref( item, nextQuery, timeExcludedScreens );
expect( item.href ).toBe( WP_ADMIN_URL );
} );
} );