Skip to content

Commit

Permalink
test: add tests for Tabs
Browse files Browse the repository at this point in the history
  • Loading branch information
chargome committed Oct 5, 2022
1 parent c8a2bdf commit c612d95
Showing 1 changed file with 49 additions and 0 deletions.
49 changes: 49 additions & 0 deletions src/Tabs/Tabs.test.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
import '@testing-library/jest-dom'
import '@testing-library/jest-dom/extend-expect'

import { render, fireEvent, screen } from '@testing-library/react'
import userEvent from '@testing-library/user-event'

import Tabs from './'

describe('Tabs', () => {
const tabLabel1 = 'one'
const tabLabel2 = 'two'
const tabValue1 = 1
const tabValue2 = 2

it('Should render tabs', () => {
render(
<Tabs>
<Tabs.Tab value={tabValue1}>{tabLabel1}</Tabs.Tab>
<Tabs.Tab value={tabValue2}>{tabLabel2}</Tabs.Tab>
</Tabs>
)
expect(screen.getByRole('tablist')).toBeInTheDocument()
})

it('Should render tab labels', () => {
render(
<Tabs>
<Tabs.Tab value={tabValue1}>{tabLabel1}</Tabs.Tab>
<Tabs.Tab value={tabValue2}>{tabLabel2}</Tabs.Tab>
</Tabs>
)
expect(screen.getByText(tabLabel1)).toBeInTheDocument()
expect(screen.getByText(tabLabel2)).toBeInTheDocument()
})

it('Should call handler on tab click', async () => {
const mockHandler = jest.fn()
render(
<Tabs onChange={mockHandler}>
<Tabs.Tab value={tabValue1}>{tabLabel1}</Tabs.Tab>
<Tabs.Tab value={tabValue2}>{tabLabel2}</Tabs.Tab>
</Tabs>
)
const tab = screen.getByText(tabLabel1)
await userEvent.click(tab)
expect(mockHandler).toHaveBeenCalled()
expect(mockHandler).toBeCalledWith(tabValue1)
})
})

0 comments on commit c612d95

Please sign in to comment.