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();
 | 
						|
  });
 | 
						|
});
 |