Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions src/lib/components/infomessage/InfoMessage.component.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ type Props = {
title: string | React.ReactNode;
content: React.ReactNode;
link?: string;
linkText?: string;
};

const InfoMessageContainer = styled.div`
Expand All @@ -20,7 +21,7 @@ const InfoMessageContainer = styled.div`
color: white;
`;

export const InfoMessage = ({ title, content, link }: Props) => {
export const InfoMessage = ({ title, content, link, linkText }: Props) => {
const { containerRef, backgroundColor } = useComputeBackgroundColor();
const theme = useTheme();

Expand All @@ -38,7 +39,7 @@ export const InfoMessage = ({ title, content, link }: Props) => {
</Text>
{link && (
<Link href={link} target="_blank" style={{ alignSelf: 'flex-end' }}>
More info <Icon name="External-link"></Icon>
{linkText || 'More info'} <Icon name="External-link"></Icon>
</Link>
)}
</InfoMessageContainer>
Expand Down
60 changes: 59 additions & 1 deletion src/lib/components/infomessage/InfoMessageUtils.test.tsx
Original file line number Diff line number Diff line change
@@ -1,8 +1,66 @@
import React from 'react';
import '@testing-library/jest-dom';
import { render } from '@testing-library/react';
import { render, screen } from '@testing-library/react';
import { coreUIAvailableThemes } from '../../style/theme';
import { CoreUiThemeProvider } from '../coreuithemeprovider/CoreUiThemeProvider';
import { useComputeBackgroundColor } from './InfoMessageUtils';
import { InfoMessage } from './InfoMessage.component';
import { getWrapper } from '../../testUtils';

describe('InfoMessage', () => {
const selectors = {
title: () => screen.getByText('Title'),
content: () => screen.getByText('Content'),
defaultLinkText: () => screen.getByText('More info'),
link: () => screen.getByRole('link'),
linkText: () => screen.getByText('Link text'),
};
it('should render', () => {
const { Wrapper } = getWrapper();
render(<InfoMessage title="Title" content="Content" />, {
wrapper: Wrapper,
});
expect(selectors.title()).toBeInTheDocument();
expect(selectors.content()).toBeInTheDocument();
});
it('should render with link and default link text', () => {
const { Wrapper } = getWrapper();
render(
<InfoMessage
title="Title"
content="Content"
link="https://www.google.com"
/>,
{
wrapper: Wrapper,
},
);
expect(selectors.title()).toBeInTheDocument();
expect(selectors.content()).toBeInTheDocument();
expect(selectors.link()).toBeInTheDocument();
expect(selectors.defaultLinkText()).toBeInTheDocument();
expect(selectors.link()).toHaveAttribute('href', 'https://www.google.com');
});
it('should render with correct link text', () => {
const { Wrapper } = getWrapper();
render(
<InfoMessage
title="Title"
content="Content"
link="https://www.google.com"
linkText="Link text"
/>,
{
wrapper: Wrapper,
},
);
expect(selectors.title()).toBeInTheDocument();
expect(selectors.content()).toBeInTheDocument();
expect(selectors.link()).toBeInTheDocument();
expect(selectors.linkText()).toBeInTheDocument();
expect(selectors.link()).toHaveAttribute('href', 'https://www.google.com');
});
});

describe('useComputeBackgroundColor', () => {
const SUT = jest.fn();
Expand Down
Loading