1
0
mirror of https://github.com/kremalicious/portfolio.git synced 2024-12-23 01:29:41 +01:00

more tests

This commit is contained in:
Matthias Kretschmann 2019-04-28 15:01:38 +02:00
parent 748a467928
commit 0bc65e3184
Signed by: m
GPG Key ID: 606EEEF3C479A91F
5 changed files with 415 additions and 1 deletions

View File

@ -0,0 +1,361 @@
{
"projectImageFiles": {
"edges": [
{
"node": {
"name": "meta"
}
},
{
"node": {
"name": "projects"
}
},
{
"node": {
"name": "chartmogul-05"
}
},
{
"node": {
"name": "ezeep-05"
}
},
{
"node": {
"name": "ezeep-06"
}
},
{
"node": {
"name": "ipixelpad-01"
}
},
{
"node": {
"name": "allinnia-02"
}
},
{
"node": {
"name": "ezeep-03"
}
},
{
"node": {
"name": "ipdb-04"
}
},
{
"node": {
"name": "allinnia-03"
}
},
{
"node": {
"name": "ezeep-07"
}
},
{
"node": {
"name": "unihalle-03"
}
},
{
"node": {
"name": "oceanprotocol-05"
}
},
{
"node": {
"name": "apertureloupe-01"
}
},
{
"node": {
"name": "coffeecup-01"
}
},
{
"node": {
"name": "ipdb-01"
}
},
{
"node": {
"name": "ezeep-04"
}
},
{
"node": {
"name": "mrreader-01"
}
},
{
"node": {
"name": "mrreader-02"
}
},
{
"node": {
"name": "unihalle-02"
}
},
{
"node": {
"name": "chartmogul-02"
}
},
{
"node": {
"name": "ipdb-03"
}
},
{
"node": {
"name": "bigchaindb-02"
}
},
{
"node": {
"name": "chartmogul-03"
}
},
{
"node": {
"name": "ipdb-02"
}
},
{
"node": {
"name": "oceanprotocol-02"
}
},
{
"node": {
"name": "bigchaindb-03"
}
},
{
"node": {
"name": "ezeep-08"
}
},
{
"node": {
"name": "ezeep-02"
}
},
{
"node": {
"name": "oceanprotocol-03"
}
},
{
"node": {
"name": "outofwhaleoil-02"
}
},
{
"node": {
"name": "bigchaindb-05"
}
},
{
"node": {
"name": "oceanprotocol-04"
}
},
{
"node": {
"name": "outofwhaleoil-01"
}
},
{
"node": {
"name": "9984-02"
}
},
{
"node": {
"name": "niepces-camera-obscura-01"
}
},
{
"node": {
"name": "niepces-camera-obscura-02"
}
},
{
"node": {
"name": "adiumeetie-01"
}
},
{
"node": {
"name": "oceanprotocol-01"
}
},
{
"node": {
"name": "outofwhaleoil-03"
}
},
{
"node": {
"name": "unihalle-01"
}
},
{
"node": {
"name": "ezeep-01"
}
},
{
"node": {
"name": "chartmogul-01"
}
},
{
"node": {
"name": "bigchaindb-04"
}
},
{
"node": {
"name": "9984-01"
}
},
{
"node": {
"name": "chartmogul-04"
}
},
{
"node": {
"name": "mrreader-03"
}
},
{
"node": {
"name": "bigchaindb-01"
}
},
{
"node": {
"name": "projectpurple-01"
}
},
{
"node": {
"name": "biv-01"
}
},
{
"node": {
"name": "sharethemeal-01"
}
},
{
"node": {
"name": "allinnia-01"
}
},
{
"node": {
"name": "package"
}
},
{
"node": {
"name": "day"
}
},
{
"node": {
"name": "download"
}
},
{
"node": {
"name": "blog"
}
},
{
"node": {
"name": "dribbble"
}
},
{
"node": {
"name": "email"
}
},
{
"node": {
"name": "favicon"
}
},
{
"node": {
"name": "github"
}
},
{
"node": {
"name": "index"
}
},
{
"node": {
"name": "info"
}
},
{
"node": {
"name": "logo"
}
},
{
"node": {
"name": "images"
}
},
{
"node": {
"name": "night"
}
},
{
"node": {
"name": "link"
}
},
{
"node": {
"name": "twitter-card"
}
},
{
"node": {
"name": "twitter"
}
},
{
"node": {
"name": "styleguide"
}
},
{
"node": {
"name": "github-header"
}
},
{
"node": {
"name": "avatar"
}
}
]
}
}

View File

@ -1,5 +1,5 @@
import React from 'react'
import { render } from 'react-testing-library'
import { render, fireEvent, waitForElement } from 'react-testing-library'
import { StaticQuery } from 'gatsby'
import Vcard, { constructVcard, toDataURL, init } from './Vcard'
import data from '../../../jest/__fixtures__/meta.json'
@ -16,6 +16,13 @@ describe('Vcard', () => {
expect(container.firstChild).toBeInTheDocument()
})
it('Button click starts download', async () => {
const { container } = render(<Vcard />)
fireEvent.click(container.firstChild)
await waitForElement(() => global.URL.createObjectURL)
expect(global.URL.createObjectURL).toHaveBeenCalledTimes(1)
})
it('combined vCard download process finishes', async () => {
await init(data.contentYaml)
expect(global.URL.createObjectURL).toHaveBeenCalledTimes(1)

View File

@ -0,0 +1,14 @@
import React from 'react'
import { render } from 'react-testing-library'
import ProjectTechstack from './ProjectTechstack'
describe('ProjectTechstack', () => {
const techstack = ['CSS']
it('renders correctly', () => {
const { container } = render(<ProjectTechstack techstack={techstack} />)
expect(container.firstChild).toBeInTheDocument()
expect(container.querySelector('li').textContent).toBe('CSS')
})
})

View File

@ -19,4 +19,13 @@ describe('Header', () => {
)
expect(container.firstChild).toBeInTheDocument()
})
it('Availability can be hidden', () => {
const { container } = render(
<Provider value={{ dark: false, toggleDark: () => null }}>
<Header minimal={true} />
</Provider>
)
expect(container.querySelector('.availability')).not.toBeInTheDocument()
})
})

View File

@ -0,0 +1,23 @@
import React from 'react'
import { render } from 'react-testing-library'
import { StaticQuery } from 'gatsby'
import Home from '../index'
import meta from '../../../jest/__fixtures__/meta.json'
import projects from '../../../jest/__fixtures__/projects.json'
import projectImageFiles from '../../../jest/__fixtures__/projectImageFiles.json'
beforeEach(() => {
StaticQuery.mockImplementation(({ render }) => render({ ...meta }))
})
describe('Home', () => {
const data = {
...projects,
...projectImageFiles
}
it('renders correctly from data file values', () => {
const { container } = render(<Home data={data} />)
expect(container.firstChild).toBeInTheDocument()
})
})