Query.spec.tsx 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. import React from 'react';
  2. import { mount } from 'enzyme';
  3. import Query from 'components/KsqlDb/Query/Query';
  4. import { StaticRouter } from 'react-router';
  5. import configureStore from 'redux-mock-store';
  6. import { RootState } from 'redux/interfaces';
  7. import { ksqlCommandResponse } from 'redux/reducers/ksqlDb/__test__/fixtures';
  8. import { Provider } from 'react-redux';
  9. import { ThemeProvider } from 'styled-components';
  10. import theme from 'theme/theme';
  11. const mockStore = configureStore();
  12. describe('KsqlDb Query Component', () => {
  13. const pathname = `clusters/local/ksql-db/query`;
  14. it('Renders result', () => {
  15. const initialState: Partial<RootState> = {
  16. ksqlDb: {
  17. streams: [],
  18. tables: [],
  19. executionResult: ksqlCommandResponse,
  20. },
  21. loader: {
  22. 'ksqlDb/executeKsql': 'fulfilled',
  23. },
  24. };
  25. const store = mockStore(initialState);
  26. const component = mount(
  27. <ThemeProvider theme={theme}>
  28. <StaticRouter location={{ pathname }} context={{}}>
  29. <Provider store={store}>
  30. <Query />
  31. </Provider>
  32. </StaticRouter>
  33. </ThemeProvider>
  34. );
  35. // 2 streams and 1 head tr
  36. expect(component.find('tr').length).toEqual(3);
  37. });
  38. it('Renders result message', () => {
  39. const initialState: Partial<RootState> = {
  40. ksqlDb: {
  41. streams: [],
  42. tables: [],
  43. executionResult: {
  44. message: 'No available data',
  45. },
  46. },
  47. loader: {
  48. 'ksqlDb/executeKsql': 'fulfilled',
  49. },
  50. };
  51. const store = mockStore(initialState);
  52. const component = mount(
  53. <ThemeProvider theme={theme}>
  54. <StaticRouter location={{ pathname }} context={{}}>
  55. <Provider store={store}>
  56. <Query />
  57. </Provider>
  58. </StaticRouter>
  59. </ThemeProvider>
  60. );
  61. expect(
  62. component.find({ children: 'No available data' }).exists()
  63. ).toBeTruthy();
  64. });
  65. });