Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix(Card): set default component to "div" to match core #8601

Merged
merged 2 commits into from
Feb 8, 2023
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.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
4 changes: 2 additions & 2 deletions packages/react-core/src/components/Card/Card.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ export interface CardProps extends React.HTMLProps<HTMLElement>, OUIAProps {
id?: string;
/** Additional classes added to the Card */
className?: string;
/** Sets the base component to render. defaults to article */
/** Sets the base component to render. defaults to div */
component?: keyof JSX.IntrinsicElements;
/** Modifies the card to include compact styling. Should not be used with isLarge. */
isCompact?: boolean;
Expand Down Expand Up @@ -67,7 +67,7 @@ export const Card: React.FunctionComponent<CardProps> = ({
children = null,
id = '',
className = '',
component = 'article',
component = 'div',
isCompact = false,
isSelectable = false,
isSelectableRaised = false,
Expand Down
44 changes: 22 additions & 22 deletions packages/react-core/src/components/Card/__tests__/Card.test.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,8 @@ describe('Card', () => {
});

test('className is added to the root element', () => {
render(<Card className="extra-class" />);
expect(screen.getByRole('article')).toHaveClass('extra-class');
render(<Card className="extra-class">card</Card>);
expect(screen.getByText('card')).toHaveClass('extra-class');
});

test('extra props are spread to the root element', () => {
Expand Down Expand Up @@ -43,70 +43,70 @@ describe('Card', () => {
});

test('card with isSelectable applied ', () => {
render(<Card isSelectable />);
render(<Card isSelectable>selectable card</Card>);

const card = screen.getByRole('article');
const card = screen.getByText('selectable card');
expect(card).toHaveClass('pf-m-selectable');
expect(card).toHaveAttribute('tabindex', '0');
});

test('card with isSelectable and isSelected applied ', () => {
render(<Card isSelectable isSelected />);
render(<Card isSelectable isSelected>selected and selectable card</Card>);

const card = screen.getByRole('article');
const card = screen.getByText('selected and selectable card');
expect(card).toHaveClass('pf-m-selectable');
expect(card).toHaveClass('pf-m-selected');
expect(card).toHaveAttribute('tabindex', '0');
});

test('card with only isSelected applied - not change', () => {
render(<Card isSelected />);
render(<Card isSelected>selected card</Card>);

const card = screen.getByRole('article');
const card = screen.getByText('selected card');
expect(card).not.toHaveClass('pf-m-selected');
expect(card.getAttribute('tabindex')).toBeNull();
});

test('card with isDisabledRaised applied', () => {
render(<Card isDisabledRaised />);
expect(screen.getByRole('article')).toHaveClass('pf-m-non-selectable-raised');
render(<Card isDisabledRaised>disabled raised card</Card>);
expect(screen.getByText('disabled raised card')).toHaveClass('pf-m-non-selectable-raised');
});

test('card with isSelectableRaised applied - not change', () => {
render(<Card isSelectableRaised />);
render(<Card isSelectableRaised>raised selectable card</Card>);

const card = screen.getByRole('article');
const card = screen.getByText('raised selectable card');
expect(card).toHaveClass('pf-m-selectable-raised');
expect(card).toHaveAttribute('tabindex', '0');
});

test('card with isSelectableRaised and isSelected applied ', () => {
render(<Card isSelected isSelectableRaised />);
render(<Card isSelected isSelectableRaised>raised selected card</Card>);

const card = screen.getByRole('article');
const card = screen.getByText('raised selected card');
expect(card).toHaveClass('pf-m-selectable-raised');
expect(card).toHaveClass('pf-m-selected-raised');
expect(card).toHaveAttribute('tabindex', '0');
});

test('card with isFlat applied', () => {
render(<Card isFlat />);
expect(screen.getByRole('article')).toHaveClass('pf-m-flat');
render(<Card isFlat>flat card</Card>);
expect(screen.getByText('flat card')).toHaveClass('pf-m-flat');
});

test('card with isExpanded applied', () => {
render(<Card isExpanded />);
expect(screen.getByRole('article')).toHaveClass('pf-m-expanded');
render(<Card isExpanded>expanded card</Card>);
expect(screen.getByText('expanded card')).toHaveClass('pf-m-expanded');
});

test('card with isRounded applied', () => {
render(<Card isRounded />);
expect(screen.getByRole('article')).toHaveClass('pf-m-rounded');
render(<Card isRounded>rounded card</Card>);
expect(screen.getByText('rounded card')).toHaveClass('pf-m-rounded');
});

test('card with isLarge applied', () => {
render(<Card isLarge />);
expect(screen.getByRole('article')).toHaveClass('pf-m-display-lg');
render(<Card isLarge>large card</Card>);
expect(screen.getByText('large card')).toHaveClass('pf-m-display-lg');
});

test('card warns when isLarge and isCompact', () => {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

exports[`Card card with isCompact applied 1`] = `
<DocumentFragment>
<article
<div
class="pf-c-card pf-m-compact"
data-ouia-component-id="OUIA-Generated-Card-6"
data-ouia-component-type="PF4/Card"
Expand All @@ -14,7 +14,7 @@ exports[`Card card with isCompact applied 1`] = `

exports[`Card renders with PatternFly Core styles 1`] = `
<DocumentFragment>
<article
<div
class="pf-c-card"
data-ouia-component-id="OUIA-Generated-Card-1"
data-ouia-component-type="PF4/Card"
Expand Down