mirror of
				https://github.com/Unleash/unleash.git
				synced 2025-10-27 11:02:16 +01: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