1
0
mirror of https://github.com/kremalicious/portfolio.git synced 2024-06-13 16:03:24 +02:00
portfolio/src/components/Repository/index.test.tsx

43 lines
1.3 KiB
TypeScript
Raw Normal View History

2019-05-30 22:55:12 +02:00
import { render } from '@testing-library/react'
2024-02-05 10:29:00 +01:00
import Repo from '@/types/repo'
2021-02-06 14:40:39 +01:00
import repos from '../../../tests/__fixtures__/repos.json'
2023-01-29 04:58:06 +01:00
import Repository from '../Repository'
2019-05-26 22:20:16 +02:00
describe('Repository', () => {
it('renders correctly', () => {
const { container } = render(<Repository repo={repos[0]} />)
expect(container.firstChild).toBeInTheDocument()
})
it('uses html_url as main link for portfolio & blog', () => {
const repo1 = {
name: 'portfolio',
2019-10-10 00:56:37 +02:00
full_name: 'kremalicious/portfolio',
2019-05-26 22:20:16 +02:00
html_url: 'html_url'
}
const { container } = render(<Repository repo={repo1 as Repo} />)
expect(container.querySelector('h3 > a')?.getAttribute('href')).toBe(
2019-05-26 22:20:16 +02:00
repo1.html_url
)
})
it('renders homepage link when provided', () => {
const repo = {
name: 'Hello',
2019-10-10 00:56:37 +02:00
full_name: 'kremalicious/hello',
2019-05-26 22:20:16 +02:00
homepage: 'hello'
}
const { container } = render(<Repository repo={repo as Repo} />)
2019-05-26 22:20:16 +02:00
expect(container.querySelectorAll('p:last-child a').length).toBe(3)
})
it('renders no link without homepage', () => {
2019-10-10 00:56:37 +02:00
const repo = { name: 'Hello', full_name: 'repo/hello' }
2019-05-26 22:20:16 +02:00
const { container } = render(<Repository repo={repo as Repo} />)
2019-05-26 22:20:16 +02:00
expect(container.querySelectorAll('p:last-child a').length).toBe(2)
})
})