chore: Expand error detail on screencapture (#25519)

This commit is contained in:
JUST.in DO IT 2023-10-04 11:06:22 -07:00 committed by GitHub
parent b92957e510
commit ba541e8022
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 28 additions and 2 deletions

View File

@ -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(
<span role="img" aria-label={fileName.replace('_', '-')} />,
);
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(<ErrorAlert {...mockedProps} />);
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(<ErrorAlert {...seemoreProps} />);
expect(screen.getByText('Error subtitle')).toBeInTheDocument();
expect(screen.getByText('Error body')).toBeInTheDocument();
});
test('should render the modal', () => {
render(<ErrorAlert {...mockedProps} />, { useRedux: true });
const button = screen.getByText('See more');

View File

@ -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 (