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} | ||||
|                             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