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}
|
||||
sdkType={sdk.type}
|
||||
onEnvSelect={setEnvironment}
|
||||
onApiKey={(apiKey) => {
|
||||
setApiKey(apiKey);
|
||||
}}
|
||||
onApiKey={setApiKey}
|
||||
/>
|
||||
) : null}
|
||||
{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>
|
||||
<SdkListSection>
|
||||
{serverSdks.map((sdk) => (
|
||||
<SdkTile>
|
||||
<SdkTile key={sdk.name}>
|
||||
<StyledAvatar src={formatAssetPath(sdk.icon)} />
|
||||
<SdkTileContent>
|
||||
<b>{sdk.name}</b>{' '}
|
||||
|
@ -3,26 +3,7 @@ import { screen } from '@testing-library/react';
|
||||
import { useDefaultColumnVisibility } from './useDefaultColumnVisibility';
|
||||
import { render } from 'utils/testRenderer';
|
||||
import { ThemeProvider } from 'themes/ThemeProvider';
|
||||
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,
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
const resizeScreen = (width: number) => {
|
||||
window.matchMedia = createMatchMedia(width);
|
||||
};
|
||||
import { resizeScreen } from 'utils/resizeScreen';
|
||||
|
||||
const columnIds = [
|
||||
'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