mirror of https://github.com/grafana/grafana.git
				
				
				
			
		
			
	
	
		
			53 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
		
		
			
		
	
	
			53 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
|  | import { render, screen } from '@testing-library/react'; | ||
|  | import React from 'react'; | ||
|  | import { Provider } from 'react-redux'; | ||
|  | 
 | ||
|  | import { configureStore } from 'app/store/configureStore'; | ||
|  | 
 | ||
|  | import { getMockDashboard } from '../__mocks__'; | ||
|  | 
 | ||
|  | import { DataSourceDashboardsView, ViewProps } from './DataSourceDashboards'; | ||
|  | 
 | ||
|  | const setup = ({ | ||
|  |   dashboards = [], | ||
|  |   isLoading = false, | ||
|  |   onImportDashboard = jest.fn(), | ||
|  |   onRemoveDashboard = jest.fn(), | ||
|  | }: Partial<ViewProps>) => { | ||
|  |   const store = configureStore(); | ||
|  | 
 | ||
|  |   return render( | ||
|  |     <Provider store={store}> | ||
|  |       <DataSourceDashboardsView | ||
|  |         isLoading={isLoading} | ||
|  |         dashboards={dashboards} | ||
|  |         onImportDashboard={onImportDashboard} | ||
|  |         onRemoveDashboard={onRemoveDashboard} | ||
|  |       /> | ||
|  |     </Provider> | ||
|  |   ); | ||
|  | }; | ||
|  | 
 | ||
|  | describe('<DataSourceDashboards>', () => { | ||
|  |   it('should show a loading indicator while loading', () => { | ||
|  |     setup({ isLoading: true }); | ||
|  | 
 | ||
|  |     expect(screen.queryByText(/loading/i)).toBeVisible(); | ||
|  |   }); | ||
|  | 
 | ||
|  |   it('should not show a loading indicator when loaded', () => { | ||
|  |     setup({ isLoading: false }); | ||
|  | 
 | ||
|  |     expect(screen.queryByText(/loading/i)).not.toBeInTheDocument(); | ||
|  |   }); | ||
|  | 
 | ||
|  |   it('should show a list of dashboards once loaded', () => { | ||
|  |     setup({ | ||
|  |       dashboards: [getMockDashboard({ title: 'My Dashboard 1' }), getMockDashboard({ title: 'My Dashboard 2' })], | ||
|  |     }); | ||
|  | 
 | ||
|  |     expect(screen.queryByText('My Dashboard 1')).toBeVisible(); | ||
|  |     expect(screen.queryByText('My Dashboard 2')).toBeVisible(); | ||
|  |   }); | ||
|  | }); |