Skip to content

Commit

Permalink
🔧 Fix provider and store missing test errors in TopBar related compon…
Browse files Browse the repository at this point in the history
…ents
  • Loading branch information
Kanakanajm committed Jun 14, 2024
1 parent 1220e91 commit 4f86bda
Show file tree
Hide file tree
Showing 7 changed files with 54 additions and 19 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,15 @@ import i18n from '../../../util/i18nForTests';

import {I18nextProvider} from 'react-i18next';
import ApplicationMenu from '../../../components/TopBar/ApplicationMenu';

import {Provider} from 'react-redux';
import {Store} from '../../../store';
describe('TopBarMenu', () => {
test('open', async () => {
render(
<I18nextProvider i18n={i18n}>
<ApplicationMenu />
<Provider store={Store}>
<ApplicationMenu />
</Provider>
</I18nextProvider>
);
const menu = screen.getByLabelText('topBar.menu.label');
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,16 @@ import userEvent from '@testing-library/user-event';
import i18n from '../../../../util/i18nForTests';
import {I18nextProvider} from 'react-i18next';
import ApplicationMenu from '../../../../components/TopBar/ApplicationMenu';

import {Provider} from 'react-redux';
import {Store} from '../../../../store';
describe('AccessibilityDialog', () => {
test('PopUp', async () => {
render(
<I18nextProvider i18n={i18n}>
<Suspense>
<ApplicationMenu />
<Provider store={Store}>
<ApplicationMenu />
</Provider>
</Suspense>
</I18nextProvider>
);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,8 @@ import i18n from '../../../../util/i18nForTests';
import {I18nextProvider} from 'react-i18next';
import {forceVisible} from 'react-lazyload';
import ApplicationMenu from '../../../../components/TopBar/ApplicationMenu';

import {Provider} from 'react-redux';
import {Store} from '../../../../store';
describe('AttributionDialog', () => {
test('PopUp', async () => {
// We mock fetch to return two entries for attributions.
Expand Down Expand Up @@ -45,7 +46,9 @@ describe('AttributionDialog', () => {
render(
<I18nextProvider i18n={i18n}>
<Suspense>
<ApplicationMenu />
<Provider store={Store}>
<ApplicationMenu />
</Provider>
</Suspense>
</I18nextProvider>
);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,13 +10,16 @@ import i18n from '../../../../util/i18nForTests';

import {I18nextProvider} from 'react-i18next';
import ApplicationMenu from '../../../../components/TopBar/ApplicationMenu';

import {Provider} from 'react-redux';
import {Store} from '../../../../store';
describe('ImprintDialog', () => {
test('PopUp', async () => {
render(
<I18nextProvider i18n={i18n}>
<Suspense>
<ApplicationMenu />
<Provider store={Store}>
<ApplicationMenu />
</Provider>
</Suspense>
</I18nextProvider>
);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,16 @@ import userEvent from '@testing-library/user-event';
import i18n from '../../../../util/i18nForTests';
import {I18nextProvider} from 'react-i18next';
import ApplicationMenu from '../../../../components/TopBar/ApplicationMenu';

import {Provider} from 'react-redux';
import {Store} from '../../../../store';
describe('PrivacyPolicyDialog', () => {
test('PopUp', async () => {
render(
<I18nextProvider i18n={i18n}>
<Suspense>
<ApplicationMenu />
<Provider store={Store}>
<ApplicationMenu />
</Provider>
</Suspense>
</I18nextProvider>
);
Expand Down
6 changes: 5 additions & 1 deletion frontend/src/__tests__/components/TopBar/TopBar.test.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -9,12 +9,16 @@ import i18n from '../../../util/i18nForTests';

import TopBar from '../../../components/TopBar';
import {I18nextProvider} from 'react-i18next';
import {Provider} from 'react-redux';
import {Store} from '../../../store';

describe('TopBar', () => {
test('icon', () => {
render(
<I18nextProvider i18n={i18n}>
<TopBar />
<Provider store={Store}>
<TopBar />
</Provider>
</I18nextProvider>
);
screen.getByAltText('topBar.icon-alt');
Expand Down
32 changes: 24 additions & 8 deletions frontend/src/components/AuthProvider.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -12,15 +12,31 @@ interface AuthProviderProps {

function AuthProvider({children}: AuthProviderProps) {
const realm = useAppSelector((state) => state.realm.name);
let authConfig: TAuthConfig;

const authConfig: TAuthConfig = {
clientId: `${import.meta.env.VITE_OAUTH_CLIENT_ID || ''}`,
authorizationEndpoint: `${import.meta.env.VITE_OAUTH_API_URL || ''}/realms/${realm}/protocol/openid-connect/auth`,
tokenEndpoint: `${import.meta.env.VITE_OAUTH_API_URL || ''}/realms/${realm}/protocol/openid-connect/token`,
redirectUri: window.location.origin, // always redirect to root
scope: 'openid profile email', // default scope without audience
autoLogin: false,
};
if (!import.meta.env.VITE_OAUTH_CLIENT_ID || !import.meta.env.VITE_OAUTH_API_URL) {
// in case required auth env vars are not set
console.warn(
'Missing environment variables: VITE_OAUTH_CLIENT_ID or VITE_OAUTH_API_URL. Please set it to enable authentication.'
);
authConfig = {
clientId: 'client-placeholder',
authorizationEndpoint: 'auth-endpoint-placeholder',
tokenEndpoint: 'token-endpoint-placeholder',
redirectUri: window.location.origin,
autoLogin: false,
};
} else {
// actual auth configurations
authConfig = {
clientId: `${import.meta.env.VITE_OAUTH_CLIENT_ID}`,
authorizationEndpoint: `${import.meta.env.VITE_OAUTH_API_URL}/realms/${realm}/protocol/openid-connect/auth`,
tokenEndpoint: `${import.meta.env.VITE_OAUTH_API_URL}/realms/${realm}/protocol/openid-connect/token`,
redirectUri: window.location.origin, // always redirect to root
scope: 'openid profile email', // default scope without audience
autoLogin: false,
};
}

return <OAuth2WithPkceProvider authConfig={authConfig}>{children}</OAuth2WithPkceProvider>;
}
Expand Down

0 comments on commit 4f86bda

Please sign in to comment.