From f04b4e87fbebaf2911593c74c965e67a5eaf7de7 Mon Sep 17 00:00:00 2001
From: Ross Mabbett <92495987+rtexelm@users.noreply.github.com>
Date: Tue, 7 May 2024 19:12:55 -0400
Subject: [PATCH] refactor(superset-ui-core): Migrate FallbackComponent.test to
RTL (#28359)
---
.../components/FallbackComponent.test.tsx | 66 ++++++++++---------
1 file changed, 34 insertions(+), 32 deletions(-)
diff --git a/superset-frontend/packages/superset-ui-core/test/chart/components/FallbackComponent.test.tsx b/superset-frontend/packages/superset-ui-core/test/chart/components/FallbackComponent.test.tsx
index f5d2bf0df2e72..eadb552988ea9 100644
--- a/superset-frontend/packages/superset-ui-core/test/chart/components/FallbackComponent.test.tsx
+++ b/superset-frontend/packages/superset-ui-core/test/chart/components/FallbackComponent.test.tsx
@@ -18,42 +18,44 @@
*/
import React from 'react';
-import { shallow } from 'enzyme';
+import { render } from '@testing-library/react';
+import '@testing-library/jest-dom';
+import { FallbackProps } from 'react-error-boundary';
+import { ThemeProvider, supersetTheme } from '../../../src/style';
+
import FallbackComponent from '../../../src/chart/components/FallbackComponent';
-describe('FallbackComponent', () => {
- const ERROR = new Error('CaffeineOverLoadException');
- const STACK_TRACE = 'Error at line 1: x.drink(coffee)';
-
- it('renders error and stack trace', () => {
- const wrapper = shallow(
- ,
- );
- const messages = wrapper.find('code');
- expect(messages).toHaveLength(2);
- expect(messages.at(0).text()).toEqual('Error: CaffeineOverLoadException');
- expect(messages.at(1).text()).toEqual('Error at line 1: x.drink(coffee)');
- });
+const renderWithTheme = (props: FallbackProps) =>
+ render(
+
+
+ ,
+ );
- it('renders error only', () => {
- const wrapper = shallow();
- const messages = wrapper.find('code');
- expect(messages).toHaveLength(1);
- expect(messages.at(0).text()).toEqual('Error: CaffeineOverLoadException');
- });
+const ERROR = new Error('CaffeineOverLoadException');
+const STACK_TRACE = 'Error at line 1: x.drink(coffee)';
- it('renders stacktrace only', () => {
- const wrapper = shallow();
- const messages = wrapper.find('code');
- expect(messages).toHaveLength(2);
- expect(messages.at(0).text()).toEqual('Unknown Error');
- expect(messages.at(1).text()).toEqual('Error at line 1: x.drink(coffee)');
+test('renders error and stack trace', () => {
+ const { getByText } = renderWithTheme({
+ componentStack: STACK_TRACE,
+ error: ERROR,
});
+ expect(getByText('Error: CaffeineOverLoadException')).toBeInTheDocument();
+ expect(getByText('Error at line 1: x.drink(coffee)')).toBeInTheDocument();
+});
- it('renders when nothing is given', () => {
- const wrapper = shallow();
- const messages = wrapper.find('code');
- expect(messages).toHaveLength(1);
- expect(messages.at(0).text()).toEqual('Unknown Error');
- });
+test('renders error only', () => {
+ const { getByText } = renderWithTheme({ error: ERROR });
+ expect(getByText('Error: CaffeineOverLoadException')).toBeInTheDocument();
+});
+
+test('renders stacktrace only', () => {
+ const { getByText } = renderWithTheme({ componentStack: STACK_TRACE });
+ expect(getByText('Unknown Error')).toBeInTheDocument();
+ expect(getByText('Error at line 1: x.drink(coffee)')).toBeInTheDocument();
+});
+
+test('renders when nothing is given', () => {
+ const { getByText } = renderWithTheme({});
+ expect(getByText('Unknown Error')).toBeInTheDocument();
});