mirror of
https://github.com/Unleash/unleash.git
synced 2025-06-23 01:16:27 +02:00
test: onboarding test with existing key (#8116)
This commit is contained in:
parent
00e63609d4
commit
0b656db80a
@ -107,9 +107,7 @@ export const ConnectSdkDialog = ({
|
|||||||
project={project}
|
project={project}
|
||||||
sdkType={sdk.type}
|
sdkType={sdk.type}
|
||||||
onEnvSelect={setEnvironment}
|
onEnvSelect={setEnvironment}
|
||||||
onApiKey={(apiKey) => {
|
onApiKey={setApiKey}
|
||||||
setApiKey(apiKey);
|
|
||||||
}}
|
|
||||||
/>
|
/>
|
||||||
) : null}
|
) : null}
|
||||||
{isTestConnectionStage ? (
|
{isTestConnectionStage ? (
|
||||||
|
68
frontend/src/component/onboarding/Onboarding.test.tsx
Normal file
68
frontend/src/component/onboarding/Onboarding.test.tsx
Normal file
@ -0,0 +1,68 @@
|
|||||||
|
import { render } from 'utils/testRenderer';
|
||||||
|
import { ConnectSdkDialog } from './ConnectSdkDialog';
|
||||||
|
import { fireEvent, screen, waitFor } from '@testing-library/react';
|
||||||
|
import { testServerRoute, testServerSetup } from 'utils/testServer';
|
||||||
|
import { resizeScreen } from 'utils/resizeScreen';
|
||||||
|
|
||||||
|
const server = testServerSetup();
|
||||||
|
|
||||||
|
const setupApi = () => {
|
||||||
|
testServerRoute(server, '/api/admin/projects/default/api-tokens', {
|
||||||
|
tokens: [
|
||||||
|
{
|
||||||
|
environment: 'development',
|
||||||
|
type: 'client',
|
||||||
|
secret: 'default:development.5c4150866d',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
});
|
||||||
|
|
||||||
|
testServerRoute(server, '/api/admin/ui-config', {
|
||||||
|
versionInfo: {
|
||||||
|
current: { oss: 'irrelevant', enterprise: 'some value' },
|
||||||
|
},
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
test('Onboarding for SDK with existing key', async () => {
|
||||||
|
setupApi();
|
||||||
|
// on smaller screens we don't show concepts definitions
|
||||||
|
resizeScreen(2000);
|
||||||
|
|
||||||
|
render(
|
||||||
|
<ConnectSdkDialog
|
||||||
|
project='default'
|
||||||
|
onClose={() => {}}
|
||||||
|
open={true}
|
||||||
|
environments={['development', 'productions']}
|
||||||
|
feature='featureA'
|
||||||
|
/>,
|
||||||
|
);
|
||||||
|
|
||||||
|
screen.getByText('1/3 - Choose SDK');
|
||||||
|
screen.getByText('Select SDK');
|
||||||
|
screen.getByText('SDKs and Unleash');
|
||||||
|
|
||||||
|
const node = screen.getAllByText('Select')[0];
|
||||||
|
|
||||||
|
fireEvent.click(node);
|
||||||
|
|
||||||
|
screen.getByText('2/3 - Generate API Key');
|
||||||
|
screen.getByText('API Key');
|
||||||
|
screen.getByText('Flags live in projects');
|
||||||
|
screen.getByText('development');
|
||||||
|
|
||||||
|
await screen.findByText('The API key secret');
|
||||||
|
await screen.findByText('5c4150866d');
|
||||||
|
|
||||||
|
const next = screen.getByText('Next');
|
||||||
|
|
||||||
|
await waitFor(() => {
|
||||||
|
expect(next).toBeEnabled();
|
||||||
|
});
|
||||||
|
|
||||||
|
fireEvent.click(next);
|
||||||
|
|
||||||
|
await screen.findByText('npm install unleash-client');
|
||||||
|
await screen.findByText('Connection status');
|
||||||
|
});
|
@ -73,7 +73,7 @@ export const SelectSdk: FC<ISelectSdkProps> = ({ onSelect }) => {
|
|||||||
</SecondarySectionHeader>
|
</SecondarySectionHeader>
|
||||||
<SdkListSection>
|
<SdkListSection>
|
||||||
{serverSdks.map((sdk) => (
|
{serverSdks.map((sdk) => (
|
||||||
<SdkTile>
|
<SdkTile key={sdk.name}>
|
||||||
<StyledAvatar src={formatAssetPath(sdk.icon)} />
|
<StyledAvatar src={formatAssetPath(sdk.icon)} />
|
||||||
<SdkTileContent>
|
<SdkTileContent>
|
||||||
<b>{sdk.name}</b>{' '}
|
<b>{sdk.name}</b>{' '}
|
||||||
|
@ -3,26 +3,7 @@ import { screen } from '@testing-library/react';
|
|||||||
import { useDefaultColumnVisibility } from './useDefaultColumnVisibility';
|
import { useDefaultColumnVisibility } from './useDefaultColumnVisibility';
|
||||||
import { render } from 'utils/testRenderer';
|
import { render } from 'utils/testRenderer';
|
||||||
import { ThemeProvider } from 'themes/ThemeProvider';
|
import { ThemeProvider } from 'themes/ThemeProvider';
|
||||||
import mediaQuery from 'css-mediaquery';
|
import { resizeScreen } from 'utils/resizeScreen';
|
||||||
|
|
||||||
const createMatchMedia = (width: number) => {
|
|
||||||
return (query: string) => {
|
|
||||||
return {
|
|
||||||
matches: mediaQuery.match(query, { width }),
|
|
||||||
media: '',
|
|
||||||
addListener: () => {},
|
|
||||||
removeListener: () => {},
|
|
||||||
onchange: () => {},
|
|
||||||
addEventListener: () => {},
|
|
||||||
removeEventListener: () => {},
|
|
||||||
dispatchEvent: () => true,
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
const resizeScreen = (width: number) => {
|
|
||||||
window.matchMedia = createMatchMedia(width);
|
|
||||||
};
|
|
||||||
|
|
||||||
const columnIds = [
|
const columnIds = [
|
||||||
'select',
|
'select',
|
||||||
|
20
frontend/src/utils/resizeScreen.ts
Normal file
20
frontend/src/utils/resizeScreen.ts
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
import mediaQuery from 'css-mediaquery';
|
||||||
|
|
||||||
|
const createMatchMedia = (width: number) => {
|
||||||
|
return (query: string) => {
|
||||||
|
return {
|
||||||
|
matches: mediaQuery.match(query, { width }),
|
||||||
|
media: '',
|
||||||
|
addListener: () => {},
|
||||||
|
removeListener: () => {},
|
||||||
|
onchange: () => {},
|
||||||
|
addEventListener: () => {},
|
||||||
|
removeEventListener: () => {},
|
||||||
|
dispatchEvent: () => true,
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
export const resizeScreen = (width: number) => {
|
||||||
|
window.matchMedia = createMatchMedia(width);
|
||||||
|
};
|
Loading…
Reference in New Issue
Block a user