Add tests for react admin translations (#33510)
* Add switch-language endpoint * Add translation tests for PHP, react client, and component * Fix component test * Add Changelog * Add Changelog
This commit is contained in:
parent
0a2588f6c4
commit
7c723583cb
|
@ -0,0 +1,4 @@
|
||||||
|
Significance: patch
|
||||||
|
Type: dev
|
||||||
|
|
||||||
|
Add tests for react-admin translations.
|
|
@ -10,6 +10,7 @@ const { utils } = require( '@woocommerce/e2e-utils' );
|
||||||
const { PLUGIN_NAME } = process.env;
|
const { PLUGIN_NAME } = process.env;
|
||||||
|
|
||||||
const resetEndpoint = '/woocommerce-reset/v1/state';
|
const resetEndpoint = '/woocommerce-reset/v1/state';
|
||||||
|
const switchLanguageEndpoint = '/woocommerce-reset/v1/switch-language';
|
||||||
|
|
||||||
const pluginName = PLUGIN_NAME ? PLUGIN_NAME : 'WooCommerce';
|
const pluginName = PLUGIN_NAME ? PLUGIN_NAME : 'WooCommerce';
|
||||||
const pluginNameSlug = utils.getSlug( pluginName );
|
const pluginNameSlug = utils.getSlug( pluginName );
|
||||||
|
@ -31,3 +32,9 @@ export async function resetWooCommerceState() {
|
||||||
expect( response.statusCode ).toEqual( 200 );
|
expect( response.statusCode ).toEqual( 200 );
|
||||||
await deactivateAndDeleteAllPlugins( skippedPlugins );
|
await deactivateAndDeleteAllPlugins( skippedPlugins );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export async function switchLanguage( lang: string ) {
|
||||||
|
await httpClient.post( switchLanguageEndpoint, {
|
||||||
|
lang,
|
||||||
|
} );
|
||||||
|
}
|
||||||
|
|
|
@ -7,3 +7,4 @@ export * from './tasks/payment';
|
||||||
export * from './tasks/purchase';
|
export * from './tasks/purchase';
|
||||||
export * from './homescreen/task-list';
|
export * from './homescreen/task-list';
|
||||||
export * from './homescreen/activity-panel';
|
export * from './homescreen/activity-panel';
|
||||||
|
export * from './translations';
|
||||||
|
|
|
@ -0,0 +1,85 @@
|
||||||
|
/**
|
||||||
|
* Internal dependencies
|
||||||
|
*/
|
||||||
|
import { Login } from '../pages/Login';
|
||||||
|
import { OnboardingWizard } from '../pages/OnboardingWizard';
|
||||||
|
import { WcHomescreen } from '../pages/WcHomescreen';
|
||||||
|
import { Analytics } from '../pages/Analytics';
|
||||||
|
import { switchLanguage } from '../fixtures';
|
||||||
|
|
||||||
|
/* eslint-disable @typescript-eslint/no-var-requires */
|
||||||
|
const { afterAll, beforeAll, describe, it } = require( '@jest/globals' );
|
||||||
|
/* eslint-enable @typescript-eslint/no-var-requires */
|
||||||
|
|
||||||
|
const testAdminTranslations = () => {
|
||||||
|
describe( 'Test client, package, and PHP class translations,', () => {
|
||||||
|
const profileWizard = new OnboardingWizard( page );
|
||||||
|
const homeScreen = new WcHomescreen( page );
|
||||||
|
const analyticsPage = new Analytics( page );
|
||||||
|
const login = new Login( page );
|
||||||
|
|
||||||
|
beforeAll( async () => {
|
||||||
|
await login.login();
|
||||||
|
await switchLanguage( 'en_US' );
|
||||||
|
await profileWizard.navigate();
|
||||||
|
await profileWizard.skipStoreSetup();
|
||||||
|
} );
|
||||||
|
afterAll( async () => {} );
|
||||||
|
|
||||||
|
it( 'tests translations in PHP class, client, and component', async () => {
|
||||||
|
await homeScreen.isDisplayed();
|
||||||
|
await homeScreen.possiblyDismissWelcomeModal();
|
||||||
|
await homeScreen.navigate();
|
||||||
|
await homeScreen.isDisplayed();
|
||||||
|
const matchMenu = async ( expected: string ) => {
|
||||||
|
await expect( page ).toMatchElement(
|
||||||
|
'.toplevel_page_woocommerce ul li.wp-first-item a',
|
||||||
|
{
|
||||||
|
text: expected,
|
||||||
|
}
|
||||||
|
);
|
||||||
|
};
|
||||||
|
const matchH1 = async ( expected: string ) => {
|
||||||
|
await expect( page ).toMatchElement( 'h1', {
|
||||||
|
text: expected,
|
||||||
|
} );
|
||||||
|
};
|
||||||
|
|
||||||
|
const matchDatePickerContentButton = async ( expected: string ) => {
|
||||||
|
await expect( page ).toMatchElement(
|
||||||
|
'.woocommerce-filters-date__button-group button',
|
||||||
|
{
|
||||||
|
text: expected,
|
||||||
|
}
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
matchMenu( 'Home' );
|
||||||
|
matchH1( 'Home' );
|
||||||
|
|
||||||
|
await switchLanguage( 'es_ES' );
|
||||||
|
await page.reload();
|
||||||
|
matchMenu( 'Inicio' );
|
||||||
|
matchH1( 'Inicio' );
|
||||||
|
|
||||||
|
await switchLanguage( 'en_US' );
|
||||||
|
|
||||||
|
// Navigate to the Analytics page and test the component translation
|
||||||
|
await analyticsPage.navigate();
|
||||||
|
await analyticsPage.isDisplayed();
|
||||||
|
await analyticsPage.click( '.woocommerce-filters-filter button' );
|
||||||
|
await matchDatePickerContentButton( 'Update' );
|
||||||
|
|
||||||
|
await switchLanguage( 'es_ES' );
|
||||||
|
await page.reload();
|
||||||
|
await analyticsPage.isDisplayed();
|
||||||
|
await analyticsPage.click( '.woocommerce-filters-filter button' );
|
||||||
|
await matchDatePickerContentButton( 'Actualizar' );
|
||||||
|
|
||||||
|
// Rendimiento
|
||||||
|
await switchLanguage( 'en_US' );
|
||||||
|
} );
|
||||||
|
} );
|
||||||
|
};
|
||||||
|
|
||||||
|
module.exports = { testAdminTranslations };
|
|
@ -0,0 +1,4 @@
|
||||||
|
Significance: minor
|
||||||
|
Type: add
|
||||||
|
|
||||||
|
Added tests for react admin translations
|
|
@ -0,0 +1,3 @@
|
||||||
|
const { testAdminTranslations } = require( '@woocommerce/admin-e2e-tests' );
|
||||||
|
|
||||||
|
testAdminTranslations();
|
Loading…
Reference in New Issue