chore: Add tests for InfoCard subheading

Signed-off-by: Jack Palmer <jackpalmer@spotify.com>
This commit is contained in:
Jack Palmer
2022-12-06 09:20:24 +00:00
parent 16e31e690f
commit 73a352e10a
2 changed files with 39 additions and 1 deletions
@@ -16,6 +16,7 @@
import React from 'react';
import { renderInTestApp } from '@backstage/test-utils';
import { within } from '@testing-library/react';
import { InfoCard } from './InfoCard';
const minProps = {
@@ -36,4 +37,38 @@ describe('<InfoCard />', () => {
const rendered = await renderInTestApp(<InfoCard {...minProps} />);
expect(rendered.getByText('A deepLink title')).toBeInTheDocument();
});
describe('Subheader', () => {
it('shows the subheader passed in via the subheader prop', async () => {
const { getByTestId } = await renderInTestApp(
<InfoCard {...minProps} subheader="example subheader" />,
);
const subheaderContainer = getByTestId('info-card-subheader');
expect(
within(subheaderContainer).getByText('example subheader'),
).toBeInTheDocument();
});
it('shows the icon passed in via the icon prop', async () => {
const { getByTestId } = await renderInTestApp(
<InfoCard {...minProps} icon={<span data-testid="mock-icon" />} />,
);
const subheaderContainer = getByTestId('info-card-subheader');
expect(
within(subheaderContainer).getByTestId('mock-icon'),
).toBeInTheDocument();
});
it('is not rendered where there is not an icon or subheading', async () => {
const { queryByTestId } = await renderInTestApp(
<InfoCard {...minProps} />,
);
expect(queryByTestId('info-card-subheader')).not.toBeInTheDocument();
});
});
});
@@ -205,7 +205,10 @@ export function InfoCard(props: Props): JSX.Element {
}
return (
<div className={classes.headerSubheader}>
<div
className={classes.headerSubheader}
data-testid="info-card-subheader"
>
{subheader && <div className={classes.subheader}>{subheader}</div>}
{icon}
</div>