diff options
| author | Armand Philippot <git@armandphilippot.com> | 2023-10-17 19:46:08 +0200 |
|---|---|---|
| committer | Armand Philippot <git@armandphilippot.com> | 2023-11-11 18:14:41 +0100 |
| commit | c153f93dc8691a71dc76aad3dd618298da9d238a (patch) | |
| tree | 9c116c1472bab5585f98bceee19cfeca5041360d /src/components/molecules/card/card-actions.test.tsx | |
| parent | 006b15b467a5cd835a6eab1b49023100bdc8f2e6 (diff) | |
refactor(components): rewrite Card component
* make the component more generic
* merge `<Summary />` and `<Comment />` styles into card component
to avoid repeating the same structure
* remove most of the props to use composition
However the CSS is a bit complex because of the two variants...
Also, the component should be refactored when the CSS pseudo-class
`:has` has enough support: the provider and the `cover` and `meta`
props should be removed.
Diffstat (limited to 'src/components/molecules/card/card-actions.test.tsx')
| -rw-r--r-- | src/components/molecules/card/card-actions.test.tsx | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/src/components/molecules/card/card-actions.test.tsx b/src/components/molecules/card/card-actions.test.tsx new file mode 100644 index 0000000..94c2677 --- /dev/null +++ b/src/components/molecules/card/card-actions.test.tsx @@ -0,0 +1,37 @@ +import { describe, expect, it } from '@jest/globals'; +import { render, screen as rtlScreen } from '@testing-library/react'; +import { CardActions } from './card-actions'; + +describe('CardActions', () => { + it('renders its children', () => { + const actions = 'animi et omnis'; + + render(<CardActions>{actions}</CardActions>); + + expect(rtlScreen.getByText(actions)).toBeInTheDocument(); + }); + + it('can render its children with start alignment', () => { + const actions = 'animi et omnis'; + + render(<CardActions alignment="start">{actions}</CardActions>); + + expect(rtlScreen.getByText(actions)).toHaveStyle(`--alignment: flex-start`); + }); + + it('can render its children with centered alignment', () => { + const actions = 'animi et omnis'; + + render(<CardActions alignment="center">{actions}</CardActions>); + + expect(rtlScreen.getByText(actions)).toHaveStyle(`--alignment: center`); + }); + + it('can render its children with end alignment', () => { + const actions = 'animi et omnis'; + + render(<CardActions alignment="end">{actions}</CardActions>); + + expect(rtlScreen.getByText(actions)).toHaveStyle(`--alignment: flex-end`); + }); +}); |
