2019-05-26 22:20:16 +02:00
|
|
|
import React from 'react'
|
2019-05-30 22:55:12 +02:00
|
|
|
import { render } from '@testing-library/react'
|
2019-05-26 22:20:16 +02:00
|
|
|
import Repository from './Repository'
|
|
|
|
import repos from '../../../jest/__fixtures__/repos.json'
|
|
|
|
|
|
|
|
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} />)
|
|
|
|
expect(container.querySelector('h1 > a').getAttribute('href')).toBe(
|
|
|
|
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} />)
|
|
|
|
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} />)
|
|
|
|
expect(container.querySelectorAll('p:last-child a').length).toBe(2)
|
|
|
|
})
|
|
|
|
})
|