diff options
author | Anike Arni <aarni@thoughtworks.com> | 2017-02-23 11:34:14 -0300 |
---|---|---|
committer | Anike Arni <aarni@thoughtworks.com> | 2017-02-23 11:42:11 -0300 |
commit | 1997c401a5e67b76663d3996ec085eb6782c34e9 (patch) | |
tree | 5c445c20327351c5c0004fe4dc2a65143eec9612 /web-ui/src | |
parent | 5470cd7729f656fe2ed3a00d0cc301455d63d706 (diff) |
[#907] Adds integration test for translations
For this test, we refactored the way translations were done for backup
account and login, concentrating them in the common/app.js component.
with @thaissiqueira
Diffstat (limited to 'web-ui/src')
-rw-r--r-- | web-ui/src/backup_account/backup_account.js | 5 | ||||
-rw-r--r-- | web-ui/src/common/app.js (renamed from web-ui/src/backup_account/app.js) | 8 | ||||
-rw-r--r-- | web-ui/src/i18n.js | 1 | ||||
-rw-r--r-- | web-ui/src/login/login.js | 16 | ||||
-rw-r--r-- | web-ui/src/login/page.js (renamed from web-ui/src/login/app.js) | 8 | ||||
-rw-r--r-- | web-ui/src/login/page.scss (renamed from web-ui/src/login/app.scss) | 0 |
6 files changed, 22 insertions, 16 deletions
diff --git a/web-ui/src/backup_account/backup_account.js b/web-ui/src/backup_account/backup_account.js index fb431cff..ac218a39 100644 --- a/web-ui/src/backup_account/backup_account.js +++ b/web-ui/src/backup_account/backup_account.js @@ -19,11 +19,12 @@ import React from 'react'; import { render } from 'react-dom'; import a11y from 'react-a11y'; -import App from './app'; +import App from 'src/common/app'; +import PageWrapper from './page'; if (process.env.NODE_ENV === 'development') a11y(React); render( - <App />, + <App child={<PageWrapper />} />, document.getElementById('root') ); diff --git a/web-ui/src/backup_account/app.js b/web-ui/src/common/app.js index 49fe0712..f6594557 100644 --- a/web-ui/src/backup_account/app.js +++ b/web-ui/src/common/app.js @@ -18,17 +18,17 @@ import React from 'react'; import { I18nextProvider } from 'react-i18next'; -import PageWrapper from './page'; import internationalization from '../i18n'; -const App = ({ i18n = internationalization }) => ( +const App = ({ i18n = internationalization, child }) => ( <I18nextProvider i18n={i18n}> - <PageWrapper /> + {child} </I18nextProvider> ); App.propTypes = { - i18n: React.PropTypes.object // eslint-disable-line react/forbid-prop-types + i18n: React.PropTypes.object, // eslint-disable-line react/forbid-prop-types + child: React.PropTypes.element.isRequired }; App.defaultProps = { diff --git a/web-ui/src/i18n.js b/web-ui/src/i18n.js index 64c7b8a1..db107dc7 100644 --- a/web-ui/src/i18n.js +++ b/web-ui/src/i18n.js @@ -31,6 +31,7 @@ i18n .use(detector) .init({ fallbackLng: 'en_US', + parseMissingKeyHandler: key => (`"${key} untranslated"`), backend: { loadPath: 'public/locales/{{lng}}/{{ns}}.json' } diff --git a/web-ui/src/login/login.js b/web-ui/src/login/login.js index b1d895ae..c8e08762 100644 --- a/web-ui/src/login/login.js +++ b/web-ui/src/login/login.js @@ -18,17 +18,21 @@ import React from 'react'; import { render } from 'react-dom'; import a11y from 'react-a11y'; -import { I18nextProvider } from 'react-i18next'; -import AppWrapper from './app'; -import i18n from '../i18n'; +import App from 'src/common/app'; +import PageWrapper from './page'; import { hasQueryParameter } from '../util'; if (process.env.NODE_ENV === 'development') a11y(React); render( - <I18nextProvider i18n={i18n}> - <AppWrapper authError={hasQueryParameter('auth-error')} error={hasQueryParameter('error')} /> - </I18nextProvider>, + <App + child={ + <PageWrapper + authError={hasQueryParameter('auth-error')} + error={hasQueryParameter('error')} + /> + } + />, document.getElementById('root') ); diff --git a/web-ui/src/login/app.js b/web-ui/src/login/page.js index 3259f7b5..f0a7188b 100644 --- a/web-ui/src/login/app.js +++ b/web-ui/src/login/page.js @@ -23,7 +23,7 @@ import AuthError from 'src/login/error/auth_error'; import GenericError from 'src/login/error/generic_error'; import PixelatedWelcome from 'src/login/about/pixelated_welcome'; -import './app.scss'; +import './page.scss'; const errorMessage = (t, authError) => { if (authError) return <AuthError />; @@ -35,7 +35,7 @@ const rightPanel = (t, error) => { return <PixelatedWelcome />; }; -export const App = ({ t, authError, error }) => ( +export const Page = ({ t, authError, error }) => ( <div className='login'> <img className={error ? 'logo small-logo' : 'logo'} @@ -52,10 +52,10 @@ export const App = ({ t, authError, error }) => ( </div> ); -App.propTypes = { +Page.propTypes = { t: React.PropTypes.func.isRequired, authError: React.PropTypes.bool, error: React.PropTypes.bool }; -export default translate('', { wait: true })(App); +export default translate('', { wait: true })(Page); diff --git a/web-ui/src/login/app.scss b/web-ui/src/login/page.scss index 14e2d131..14e2d131 100644 --- a/web-ui/src/login/app.scss +++ b/web-ui/src/login/page.scss |