mirror of
https://github.com/supabase/supabase.git
synced 2026-07-04 06:32:54 -04:00
96d43099bb
## Problem Our `<Button>` component breaks the default `button` contract by redefining the `type` prop to set its variant (`primary`, `default`, etc) instead of the button type (`submit`, `button`, etc). This is confusing and forces to write more code when using it with shadcn components that expect/inject the standard button props. ## Solution - rename the `type` prop to `variant` - rename the `htmlType` prop to `type` - propagate the changes where necessary - format code ## How to test As this is just prop renaming, if it builds it's ok --------- Co-authored-by: Ivan Vasilov <vasilov.ivan@gmail.com>
26 lines
882 B
TypeScript
26 lines
882 B
TypeScript
import { screen } from '@testing-library/dom'
|
|
import userEvent from '@testing-library/user-event'
|
|
import { expect, test, vi } from 'vitest'
|
|
|
|
import CopyButton from '@/components/ui/CopyButton'
|
|
import { render } from '@/tests/helpers'
|
|
|
|
test('shows copied text', async () => {
|
|
const callback = vi.fn()
|
|
render(<CopyButton text="some text" onClick={callback} />)
|
|
await userEvent.click(await screen.findByText('Copy'))
|
|
await screen.findByText('Copied')
|
|
expect(callback).toBeCalled()
|
|
})
|
|
|
|
test('does not show a green copied icon for primary buttons', async () => {
|
|
const { container } = render(<CopyButton text="some text" variant="primary" />)
|
|
|
|
await userEvent.click(await screen.findByText('Copy'))
|
|
await screen.findByText('Copied')
|
|
|
|
const icon = container.querySelector('svg')
|
|
expect(icon).toHaveClass('text-inherit')
|
|
expect(icon).not.toHaveClass('text-brand')
|
|
})
|