From ba541e802278bde10f77a543b66a9b4da3bc15cf Mon Sep 17 00:00:00 2001 From: "JUST.in DO IT" Date: Wed, 4 Oct 2023 11:06:22 -0700 Subject: [PATCH] chore: Expand error detail on screencapture (#25519) --- .../ErrorMessage/ErrorAlert.test.tsx | 24 +++++++++++++++++++ .../components/ErrorMessage/ErrorAlert.tsx | 6 +++-- 2 files changed, 28 insertions(+), 2 deletions(-) diff --git a/superset-frontend/src/components/ErrorMessage/ErrorAlert.test.tsx b/superset-frontend/src/components/ErrorMessage/ErrorAlert.test.tsx index 38006c2ec4..2c2f1c2349 100644 --- a/superset-frontend/src/components/ErrorMessage/ErrorAlert.test.tsx +++ b/superset-frontend/src/components/ErrorMessage/ErrorAlert.test.tsx @@ -21,6 +21,7 @@ import React from 'react'; import userEvent from '@testing-library/user-event'; import { render, screen } from 'spec/helpers/testing-library'; import { supersetTheme } from '@superset-ui/core'; +import { isCurrentUserBot } from 'src/utils/isBot'; import ErrorAlert from './ErrorAlert'; import { ErrorLevel, ErrorSource } from './types'; @@ -31,6 +32,10 @@ jest.mock( , ); +jest.mock('src/utils/isBot', () => ({ + isCurrentUserBot: jest.fn(), +})); + const mockedProps = { body: 'Error body', level: 'warning' as ErrorLevel, @@ -41,6 +46,14 @@ const mockedProps = { description: 'we are unable to connect db.', }; +beforeEach(() => { + (isCurrentUserBot as jest.Mock).mockReturnValue(false); +}); + +afterEach(() => { + jest.clearAllMocks(); +}); + test('should render', () => { const { container } = render(); expect(container).toBeInTheDocument(); @@ -100,6 +113,17 @@ test('should render the See more button', () => { expect(screen.getByText('See more')).toBeInTheDocument(); }); +test('should render the error subtitle and body defaultly for the screen capture request', () => { + const seemoreProps = { + ...mockedProps, + source: 'explore' as ErrorSource, + }; + (isCurrentUserBot as jest.Mock).mockReturnValue(true); + render(); + expect(screen.getByText('Error subtitle')).toBeInTheDocument(); + expect(screen.getByText('Error body')).toBeInTheDocument(); +}); + test('should render the modal', () => { render(, { useRedux: true }); const button = screen.getByText('See more'); diff --git a/superset-frontend/src/components/ErrorMessage/ErrorAlert.tsx b/superset-frontend/src/components/ErrorMessage/ErrorAlert.tsx index 672d746645..da5894e887 100644 --- a/superset-frontend/src/components/ErrorMessage/ErrorAlert.tsx +++ b/superset-frontend/src/components/ErrorMessage/ErrorAlert.tsx @@ -21,6 +21,7 @@ import { styled, useTheme, t } from '@superset-ui/core'; import { noOp } from 'src/utils/common'; import Modal from 'src/components/Modal'; import Button from 'src/components/Button'; +import { isCurrentUserBot } from 'src/utils/isBot'; import Icons from 'src/components/Icons'; import { ErrorLevel, ErrorSource } from './types'; @@ -102,9 +103,10 @@ export default function ErrorAlert({ const theme = useTheme(); const [isModalOpen, setIsModalOpen] = useState(false); - const [isBodyExpanded, setIsBodyExpanded] = useState(false); + const [isBodyExpanded, setIsBodyExpanded] = useState(isCurrentUserBot()); - const isExpandable = ['explore', 'sqllab'].includes(source); + const isExpandable = + isCurrentUserBot() || ['explore', 'sqllab'].includes(source); const iconColor = theme.colors[level].base; return (