import React from 'react'; import {GraphsWrapper, X_AXIS_LENGTH, POINT_SIZE} from '../../../pgadmin/dashboard/static/js/Graphs'; import { withTheme } from '../fake_theme'; import { render, screen } from '@testing-library/react'; describe(' component', ()=>{ let graphComp = null; let defaultStats = { labels: [...Array(X_AXIS_LENGTH).keys()], datasets: [{ label: 'Label1', data: [], borderColor: '#00BCD4', backgroundColor: '#00BCD4', pointHitRadius: POINT_SIZE, },{ label: 'Label2', data: [], borderColor: '#9CCC65', backgroundColor: '#9CCC65', pointHitRadius: POINT_SIZE, }], refreshRate: 1, }; let ThemedGraphsWrapper = withTheme(GraphsWrapper); const compRerender = (props)=>{ graphComp.rerender( ); }; beforeEach(()=>{ graphComp = render( ); }); it('graph containers are rendered', ()=>{ expect(screen.getAllByTestId('chart-container').length).toBe(5); }); it('graph headers are correct', ()=>{ let found = screen.getAllByTestId('chart-container'); expect(found.at(0)).toHaveTextContent('Server sessions'); expect(found.at(1)).toHaveTextContent('Transactions per second'); expect(found.at(2)).toHaveTextContent('Tuples in'); expect(found.at(3)).toHaveTextContent('Tuples out'); expect(found.at(4)).toHaveTextContent('Block I/O'); }); it('graph headers when database', ()=>{ compRerender({isDatabase: true}); let found = screen.getAllByTestId('chart-container'); expect(found.at(0)).toHaveTextContent('Database sessions'); }); it('graph body shows the error', ()=>{ compRerender({errorMsg: 'Some error occurred'}); let found = screen.getAllByTestId('chart-container'); expect(found.at(0)).toHaveTextContent('Some error occurred'); expect(found.at(1)).toHaveTextContent('Some error occurred'); expect(found.at(2)).toHaveTextContent('Some error occurred'); expect(found.at(3)).toHaveTextContent('Some error occurred'); expect(found.at(4)).toHaveTextContent('Some error occurred'); }); });