mirror of
https://github.com/c8r/x0.git
synced 2024-10-26 15:15:04 +03:00
Add tests for components
This commit is contained in:
parent
5e37afd7a1
commit
453b0f8b2f
10
.babelrc
Normal file
10
.babelrc
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
{
|
||||||
|
"presets": [
|
||||||
|
"env",
|
||||||
|
"stage-0",
|
||||||
|
"react"
|
||||||
|
],
|
||||||
|
"plugins": [
|
||||||
|
"transform-runtime"
|
||||||
|
]
|
||||||
|
}
|
@ -8,3 +8,4 @@ examples
|
|||||||
demo
|
demo
|
||||||
dist
|
dist
|
||||||
.travis.yml
|
.travis.yml
|
||||||
|
.babelrc
|
||||||
|
15
package.json
15
package.json
@ -10,6 +10,7 @@
|
|||||||
"start": "./cli.js docs -p 8888",
|
"start": "./cli.js docs -p 8888",
|
||||||
"build": "./cli.js build docs",
|
"build": "./cli.js build docs",
|
||||||
"test": "nyc ava -T 20s",
|
"test": "nyc ava -T 20s",
|
||||||
|
"test:components": "nyc ava test/components.js",
|
||||||
"cover": "nyc report --reporter=html --reporter=lcov"
|
"cover": "nyc report --reporter=html --reporter=lcov"
|
||||||
},
|
},
|
||||||
"keywords": [
|
"keywords": [
|
||||||
@ -40,6 +41,7 @@
|
|||||||
"babel-preset-react": "^6.24.1",
|
"babel-preset-react": "^6.24.1",
|
||||||
"babel-preset-stage-0": "^6.24.1",
|
"babel-preset-stage-0": "^6.24.1",
|
||||||
"babel-register": "^6.26.0",
|
"babel-register": "^6.26.0",
|
||||||
|
"browser-env": "^3.2.5",
|
||||||
"chalk": "^2.4.1",
|
"chalk": "^2.4.1",
|
||||||
"clipboardy": "^1.2.3",
|
"clipboardy": "^1.2.3",
|
||||||
"connect-history-api-fallback": "^1.5.0",
|
"connect-history-api-fallback": "^1.5.0",
|
||||||
@ -83,8 +85,10 @@
|
|||||||
"ava": "^0.25.0",
|
"ava": "^0.25.0",
|
||||||
"isomorphic-fetch": "^2.2.1",
|
"isomorphic-fetch": "^2.2.1",
|
||||||
"nyc": "^12.0.1",
|
"nyc": "^12.0.1",
|
||||||
|
"react-test-renderer": "^16.4.1",
|
||||||
"refunk": "^3.0.1",
|
"refunk": "^3.0.1",
|
||||||
"rimraf": "^2.6.2",
|
"rimraf": "^2.6.2",
|
||||||
|
"sinon": "^6.0.0",
|
||||||
"styled-components": "^3.3.2"
|
"styled-components": "^3.3.2"
|
||||||
},
|
},
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
@ -129,16 +133,7 @@
|
|||||||
"require": [
|
"require": [
|
||||||
"babel-register"
|
"babel-register"
|
||||||
],
|
],
|
||||||
"babel": {
|
"babel": "inherit"
|
||||||
"presets": [
|
|
||||||
"env",
|
|
||||||
"stage-0",
|
|
||||||
"react"
|
|
||||||
],
|
|
||||||
"plugins": [
|
|
||||||
"transform-runtime"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=8.0"
|
"node": ">=8.0"
|
||||||
|
44
src/Catch.js
44
src/Catch.js
@ -1,11 +1,6 @@
|
|||||||
import React from 'react'
|
import React from 'react'
|
||||||
|
|
||||||
export default class Catch extends React.Component {
|
export default class Catch extends React.Component {
|
||||||
static getDerivedStateFromProps (props, state) {
|
|
||||||
if (!state.err) return null
|
|
||||||
return { err: null }
|
|
||||||
}
|
|
||||||
|
|
||||||
state = {
|
state = {
|
||||||
err: null
|
err: null
|
||||||
}
|
}
|
||||||
@ -14,27 +9,30 @@ export default class Catch extends React.Component {
|
|||||||
this.setState({ err })
|
this.setState({ err })
|
||||||
}
|
}
|
||||||
|
|
||||||
|
componentWillReceiveProps (next) {
|
||||||
|
if (!this.state.err) return
|
||||||
|
this.setState({ err: null })
|
||||||
|
}
|
||||||
|
|
||||||
render () {
|
render () {
|
||||||
const { err } = this.state
|
const { err } = this.state
|
||||||
|
|
||||||
if (err) {
|
if (!err) return this.props.children
|
||||||
return (
|
|
||||||
<pre
|
|
||||||
children={err.toString()}
|
|
||||||
style={{
|
|
||||||
color: 'white',
|
|
||||||
backgroundColor: 'red',
|
|
||||||
fontFamily: 'Menlo, monospace',
|
|
||||||
fontSize: '14px',
|
|
||||||
margin: 0,
|
|
||||||
padding: '16px',
|
|
||||||
minHeight: '128px',
|
|
||||||
whiteSpace: 'prewrap'
|
|
||||||
}}
|
|
||||||
/>
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
return this.props.children
|
return (
|
||||||
|
<pre
|
||||||
|
children={err.toString()}
|
||||||
|
style={{
|
||||||
|
color: 'white',
|
||||||
|
backgroundColor: 'red',
|
||||||
|
fontFamily: 'Menlo, monospace',
|
||||||
|
fontSize: '14px',
|
||||||
|
margin: 0,
|
||||||
|
padding: '16px',
|
||||||
|
minHeight: '128px',
|
||||||
|
whiteSpace: 'prewrap'
|
||||||
|
}}
|
||||||
|
/>
|
||||||
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -255,7 +255,6 @@ export default class Layout extends React.Component {
|
|||||||
routes = [],
|
routes = [],
|
||||||
children,
|
children,
|
||||||
route,
|
route,
|
||||||
location,
|
|
||||||
title = 'x0',
|
title = 'x0',
|
||||||
logo,
|
logo,
|
||||||
} = this.props
|
} = this.props
|
||||||
|
@ -1,9 +1,10 @@
|
|||||||
export { Link, NavLink } from 'react-router-dom'
|
export { Link, NavLink } from 'react-router-dom'
|
||||||
export { default as ScopeProvider } from './ScopeProvider'
|
export { default as Catch } from './Catch'
|
||||||
|
export { default as CenteredLayout } from './CenteredLayout'
|
||||||
|
export { default as FileList } from './FileList'
|
||||||
export { default as LiveEditor } from './LiveEditor'
|
export { default as LiveEditor } from './LiveEditor'
|
||||||
export { default as LivePreview } from './LivePreview'
|
export { default as LivePreview } from './LivePreview'
|
||||||
export { default as FileList } from './FileList'
|
export { default as ScopeProvider } from './ScopeProvider'
|
||||||
export { default as Catch } from './Catch'
|
|
||||||
export { default as ScrollTop } from './ScrollTop'
|
export { default as ScrollTop } from './ScrollTop'
|
||||||
export { default as scope } from './scope'
|
export { default as scope } from './scope'
|
||||||
|
|
||||||
|
@ -11,7 +11,7 @@ const cleanHREF = href => href
|
|||||||
.replace(/\.jsx?$/, '')
|
.replace(/\.jsx?$/, '')
|
||||||
|
|
||||||
export const link = withRouter(({
|
export const link = withRouter(({
|
||||||
href,
|
href = '',
|
||||||
match,
|
match,
|
||||||
location,
|
location,
|
||||||
children,
|
children,
|
||||||
|
260
test/components.js
Normal file
260
test/components.js
Normal file
@ -0,0 +1,260 @@
|
|||||||
|
import test from 'ava'
|
||||||
|
import React from 'react'
|
||||||
|
import { create as render } from 'react-test-renderer'
|
||||||
|
import { StaticRouter } from 'react-router-dom'
|
||||||
|
import sinon from 'sinon'
|
||||||
|
import browserEnv from 'browser-env'
|
||||||
|
|
||||||
|
import {
|
||||||
|
Catch,
|
||||||
|
CenteredLayout,
|
||||||
|
FileList,
|
||||||
|
Library,
|
||||||
|
LiveEditor,
|
||||||
|
LivePreview,
|
||||||
|
ScopeProvider,
|
||||||
|
ScrollTop,
|
||||||
|
SidebarLayout,
|
||||||
|
scope
|
||||||
|
} from '../src'
|
||||||
|
|
||||||
|
browserEnv()
|
||||||
|
|
||||||
|
// make sure this doesn't conflict with webpack tests
|
||||||
|
global.DIRNAME = __dirname
|
||||||
|
|
||||||
|
const renderJSON = el => render(el).toJSON()
|
||||||
|
|
||||||
|
test('CenteredLayout renders with active prop', t => {
|
||||||
|
const json = renderJSON(
|
||||||
|
<CenteredLayout active>
|
||||||
|
Hello
|
||||||
|
</CenteredLayout>
|
||||||
|
)
|
||||||
|
t.snapshot(json)
|
||||||
|
})
|
||||||
|
|
||||||
|
test('CenteredLayout does not render without active prop', t => {
|
||||||
|
const json = renderJSON(
|
||||||
|
<CenteredLayout>
|
||||||
|
Hello
|
||||||
|
</CenteredLayout>
|
||||||
|
)
|
||||||
|
t.is(json, 'Hello')
|
||||||
|
})
|
||||||
|
|
||||||
|
test('Catch renders', t => {
|
||||||
|
const json = renderJSON(
|
||||||
|
<Catch>Catch</Catch>
|
||||||
|
)
|
||||||
|
t.snapshot(json)
|
||||||
|
})
|
||||||
|
|
||||||
|
test('Catch renders error', t => {
|
||||||
|
const Throws = props => {
|
||||||
|
throw new Error('nope')
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
const json = renderJSON(
|
||||||
|
<Catch>
|
||||||
|
<Throws />
|
||||||
|
</Catch>
|
||||||
|
)
|
||||||
|
t.is(json.type, 'pre')
|
||||||
|
t.is(json.children[0], 'Error: nope')
|
||||||
|
t.snapshot(json)
|
||||||
|
})
|
||||||
|
|
||||||
|
test('FileList renders', t => {
|
||||||
|
const json = renderJSON(
|
||||||
|
<StaticRouter location='/' context={{}}>
|
||||||
|
<FileList
|
||||||
|
routes={[
|
||||||
|
{
|
||||||
|
path: '/',
|
||||||
|
key: '/',
|
||||||
|
name: 'Home'
|
||||||
|
}
|
||||||
|
]}
|
||||||
|
/>
|
||||||
|
</StaticRouter>
|
||||||
|
)
|
||||||
|
t.snapshot(json)
|
||||||
|
})
|
||||||
|
|
||||||
|
// doesn't seem to render correctly with refs
|
||||||
|
test.skip('LiveEditor renders', t => {
|
||||||
|
const json = renderJSON(
|
||||||
|
<LiveEditor
|
||||||
|
code='<h1>Hello</h1>'
|
||||||
|
/>
|
||||||
|
)
|
||||||
|
t.snapshot(json)
|
||||||
|
})
|
||||||
|
|
||||||
|
test('LivePreview renders', t => {
|
||||||
|
const json = renderJSON(
|
||||||
|
<LivePreview code='<h1>Hello</h1>' />
|
||||||
|
)
|
||||||
|
t.snapshot(json)
|
||||||
|
})
|
||||||
|
|
||||||
|
test('ScopeProvider renders', t => {
|
||||||
|
const json = renderJSON(
|
||||||
|
<ScopeProvider>
|
||||||
|
Hello
|
||||||
|
</ScopeProvider>
|
||||||
|
)
|
||||||
|
t.snapshot(json)
|
||||||
|
})
|
||||||
|
|
||||||
|
test('ScrollTop renders', t => {
|
||||||
|
const json = renderJSON(
|
||||||
|
<StaticRouter location='/' context={{}}>
|
||||||
|
<ScrollTop />
|
||||||
|
</StaticRouter>
|
||||||
|
)
|
||||||
|
t.is(json, null)
|
||||||
|
})
|
||||||
|
|
||||||
|
test('ScrollTop scrolls window on location change', t => {
|
||||||
|
sinon.stub(window, 'scrollTo')
|
||||||
|
const instance = render(
|
||||||
|
<StaticRouter location='/' context={{}}>
|
||||||
|
<ScrollTop />
|
||||||
|
</StaticRouter>
|
||||||
|
)
|
||||||
|
instance.update(
|
||||||
|
<StaticRouter location='/hello' context={{}}>
|
||||||
|
<ScrollTop />
|
||||||
|
</StaticRouter>
|
||||||
|
)
|
||||||
|
t.true(window.scrollTo.calledOnce)
|
||||||
|
window.scrollTo.restore()
|
||||||
|
})
|
||||||
|
|
||||||
|
test('ScrollTop scrolls to hash', t => {
|
||||||
|
const el = document.body.appendChild(
|
||||||
|
document.createElement('div')
|
||||||
|
)
|
||||||
|
el.id = 'hello'
|
||||||
|
el.scrollIntoView = sinon.spy()
|
||||||
|
|
||||||
|
const instance = render(
|
||||||
|
<StaticRouter location='/' context={{}}>
|
||||||
|
<ScrollTop />
|
||||||
|
</StaticRouter>
|
||||||
|
)
|
||||||
|
instance.update(
|
||||||
|
<StaticRouter location='/#hello' context={{}}>
|
||||||
|
<ScrollTop />
|
||||||
|
</StaticRouter>
|
||||||
|
)
|
||||||
|
|
||||||
|
t.true(el.scrollIntoView.calledOnce)
|
||||||
|
})
|
||||||
|
|
||||||
|
test('ScrollTop does not scroll to hash when there is no element', t => {
|
||||||
|
const el = document.body.appendChild(
|
||||||
|
document.createElement('div')
|
||||||
|
)
|
||||||
|
el.scrollIntoView = sinon.spy()
|
||||||
|
|
||||||
|
const instance = render(
|
||||||
|
<StaticRouter location='/' context={{}}>
|
||||||
|
<ScrollTop />
|
||||||
|
</StaticRouter>
|
||||||
|
)
|
||||||
|
instance.update(
|
||||||
|
<StaticRouter location='/#hello' context={{}}>
|
||||||
|
<ScrollTop />
|
||||||
|
</StaticRouter>
|
||||||
|
)
|
||||||
|
|
||||||
|
t.false(el.scrollIntoView.calledOnce)
|
||||||
|
})
|
||||||
|
|
||||||
|
test('Library renders', t => {
|
||||||
|
const json = renderJSON(
|
||||||
|
<StaticRouter location='/' context={{}}>
|
||||||
|
<Library
|
||||||
|
route={{ dirname: '/examples', path: '/examples' }}
|
||||||
|
routes={[
|
||||||
|
{
|
||||||
|
dirname: '/examples',
|
||||||
|
key: 'hello',
|
||||||
|
path: '/examples/hello',
|
||||||
|
name: 'hello',
|
||||||
|
Component: () => <pre>Hello</pre>
|
||||||
|
},
|
||||||
|
]}
|
||||||
|
/>
|
||||||
|
</StaticRouter>
|
||||||
|
)
|
||||||
|
t.snapshot(json)
|
||||||
|
})
|
||||||
|
|
||||||
|
test('SidebarLayout renders', t => {
|
||||||
|
const home = {
|
||||||
|
key: '/',
|
||||||
|
path: '/',
|
||||||
|
name: 'index',
|
||||||
|
props: {},
|
||||||
|
Component: () => <h1>Home</h1>
|
||||||
|
}
|
||||||
|
const json = renderJSON(
|
||||||
|
<StaticRouter location='/' context={{}}>
|
||||||
|
<SidebarLayout
|
||||||
|
children='Content'
|
||||||
|
route={home}
|
||||||
|
routes={[
|
||||||
|
home,
|
||||||
|
{
|
||||||
|
key: '/about',
|
||||||
|
path: '/about',
|
||||||
|
name: 'about',
|
||||||
|
Component: () => <h1>About</h1>
|
||||||
|
}
|
||||||
|
]}
|
||||||
|
/>
|
||||||
|
</StaticRouter>
|
||||||
|
)
|
||||||
|
t.snapshot(json)
|
||||||
|
})
|
||||||
|
// console.log(require('util').inspect(json, { depth: null }))
|
||||||
|
|
||||||
|
const blacklist = {
|
||||||
|
pre: true
|
||||||
|
}
|
||||||
|
Object.keys(scope)
|
||||||
|
.filter(key => !blacklist[key])
|
||||||
|
.forEach(key => {
|
||||||
|
test(`scope.${key} renders`, t => {
|
||||||
|
const Component = scope[key]
|
||||||
|
const json = renderJSON(
|
||||||
|
<StaticRouter context={{}}>
|
||||||
|
<Component />
|
||||||
|
</StaticRouter>
|
||||||
|
)
|
||||||
|
t.snapshot(json)
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
test('scope.pre renders children only', t => {
|
||||||
|
const json = renderJSON(
|
||||||
|
React.createElement(scope.pre, null, 'Hello')
|
||||||
|
)
|
||||||
|
t.is(json, 'Hello')
|
||||||
|
})
|
||||||
|
|
||||||
|
test('scope.a renders a plain link for absolute URLs', t => {
|
||||||
|
const Link = scope.a
|
||||||
|
const json = renderJSON(
|
||||||
|
<StaticRouter context={{}}>
|
||||||
|
<Link href='http://example.com'>Hello</Link>
|
||||||
|
</StaticRouter>
|
||||||
|
)
|
||||||
|
t.is(json.props.href, 'http://example.com')
|
||||||
|
t.snapshot(json)
|
||||||
|
})
|
||||||
|
|
Binary file not shown.
387
test/snapshots/components.js.md
Normal file
387
test/snapshots/components.js.md
Normal file
@ -0,0 +1,387 @@
|
|||||||
|
# Snapshot report for `test/components.js`
|
||||||
|
|
||||||
|
The actual snapshot is saved in `components.js.snap`.
|
||||||
|
|
||||||
|
Generated by [AVA](https://ava.li).
|
||||||
|
|
||||||
|
## Catch renders
|
||||||
|
|
||||||
|
> Snapshot 1
|
||||||
|
|
||||||
|
'Catch'
|
||||||
|
|
||||||
|
## CenteredLayout renders with active prop
|
||||||
|
|
||||||
|
> Snapshot 1
|
||||||
|
|
||||||
|
<div
|
||||||
|
className="sc-jAaTju esAkYv sc-bdVaJa iHZvIS"
|
||||||
|
>
|
||||||
|
Hello
|
||||||
|
</div>
|
||||||
|
|
||||||
|
## FileList renders
|
||||||
|
|
||||||
|
> Snapshot 1
|
||||||
|
|
||||||
|
[
|
||||||
|
<pre>
|
||||||
|
/Users/bjackson/repos/x0/test
|
||||||
|
</pre>,
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<a
|
||||||
|
href="/"
|
||||||
|
onClick={Function {}}
|
||||||
|
>
|
||||||
|
Home
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
</ul>,
|
||||||
|
|
||||||
|
|
||||||
|
## LivePreview renders
|
||||||
|
|
||||||
|
> Snapshot 1
|
||||||
|
|
||||||
|
<div
|
||||||
|
className="sc-bdVaJa kdjLZs"
|
||||||
|
>
|
||||||
|
<div
|
||||||
|
className="react-live"
|
||||||
|
>
|
||||||
|
<div
|
||||||
|
className="react-live-preview"
|
||||||
|
>
|
||||||
|
<h1>
|
||||||
|
Hello
|
||||||
|
</h1>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div
|
||||||
|
|
||||||
|
## ScopeProvider renders
|
||||||
|
|
||||||
|
> Snapshot 1
|
||||||
|
|
||||||
|
'Hello
|
||||||
|
|
||||||
|
## Library renders
|
||||||
|
|
||||||
|
> Snapshot 1
|
||||||
|
|
||||||
|
<div
|
||||||
|
className="sc-bbmXgH hCNAIb"
|
||||||
|
height={192}
|
||||||
|
width="256px"
|
||||||
|
>
|
||||||
|
<a
|
||||||
|
borderColor="gray"
|
||||||
|
className="sc-gGBfsJ eBksKh"
|
||||||
|
href="/examples/hello"
|
||||||
|
onClick={Function {}}
|
||||||
|
>
|
||||||
|
<pre>
|
||||||
|
Hello
|
||||||
|
</pre>
|
||||||
|
<pre>
|
||||||
|
hello
|
||||||
|
</pre>
|
||||||
|
</a>
|
||||||
|
</div
|
||||||
|
|
||||||
|
## SidebarLayout renders
|
||||||
|
|
||||||
|
> Snapshot 1
|
||||||
|
|
||||||
|
[
|
||||||
|
<div
|
||||||
|
className="sc-hEsumM dahmKO"
|
||||||
|
>
|
||||||
|
<div
|
||||||
|
className="sc-fMiknA jgVkvN sc-bwzfXH pjOvZ"
|
||||||
|
>
|
||||||
|
<button
|
||||||
|
className="sc-gzVnrw ghjHJc sc-ifAKCX fFPXoq"
|
||||||
|
onClick={Function onClick {}}
|
||||||
|
title="Toggle Menu"
|
||||||
|
>
|
||||||
|
<svg
|
||||||
|
fill="currentcolor"
|
||||||
|
height={24}
|
||||||
|
viewBox="0 0 24 24"
|
||||||
|
width={24}
|
||||||
|
>
|
||||||
|
<path
|
||||||
|
d="M3 18h18v-2H3v2zm0-5h18v-2H3v2zm0-7v2h18V6H3z"
|
||||||
|
/>
|
||||||
|
</svg>
|
||||||
|
</button>
|
||||||
|
<h2
|
||||||
|
className="sc-VigVT dTivBW"
|
||||||
|
>
|
||||||
|
x0
|
||||||
|
</h2>
|
||||||
|
<div
|
||||||
|
className="sc-bdVaJa hAzohM"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<hr
|
||||||
|
className="sc-kgoBCf eSqAOl"
|
||||||
|
/>
|
||||||
|
</div>,
|
||||||
|
<div
|
||||||
|
className="sc-jnlKLf fQRDBU sc-bwzfXH pjOvZ"
|
||||||
|
>
|
||||||
|
<div
|
||||||
|
className="sc-fYxtnH bIntzd"
|
||||||
|
onClick={Function onClick {}}
|
||||||
|
open={false}
|
||||||
|
>
|
||||||
|
<div
|
||||||
|
className="sc-fMiknA fVCXKt sc-bwzfXH pjOvZ"
|
||||||
|
>
|
||||||
|
<h2
|
||||||
|
className="sc-VigVT gPiNJC"
|
||||||
|
>
|
||||||
|
x0
|
||||||
|
</h2>
|
||||||
|
<div
|
||||||
|
className="sc-bdVaJa LbkC"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<hr
|
||||||
|
className="sc-kgoBCf eSqAOl"
|
||||||
|
/>
|
||||||
|
<ul
|
||||||
|
className="sc-cIShpX hSGVzQ"
|
||||||
|
>
|
||||||
|
<li
|
||||||
|
className="sc-kafWEX dNChzQ"
|
||||||
|
>
|
||||||
|
<a
|
||||||
|
"aria-current"="page"
|
||||||
|
className="sc-feJyhm jUiESA sc-dnqmqq iUcnAA active"
|
||||||
|
href="/"
|
||||||
|
onClick={Function {}}
|
||||||
|
style={{}}
|
||||||
|
>
|
||||||
|
Index
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li
|
||||||
|
className="sc-kafWEX dNChzQ"
|
||||||
|
>
|
||||||
|
<a
|
||||||
|
'aria-current'={null}
|
||||||
|
className="sc-feJyhm jUiESA sc-dnqmqq iUcnAA"
|
||||||
|
href="/about"
|
||||||
|
onClick={Function {}}
|
||||||
|
style={undefined}
|
||||||
|
>
|
||||||
|
About
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<main
|
||||||
|
className="sc-bdVaJa ioTXyJ"
|
||||||
|
tabIndex={undefined}
|
||||||
|
>
|
||||||
|
<div
|
||||||
|
className="sc-jAaTju jHRdEk sc-bdVaJa iHZvIS"
|
||||||
|
>
|
||||||
|
<div
|
||||||
|
className="sc-ktHwxA dvWgCn sc-bdVaJa iHZvIS"
|
||||||
|
>
|
||||||
|
Content
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
className="sc-bwzfXH deiOzS"
|
||||||
|
>
|
||||||
|
<div
|
||||||
|
className="sc-bdVaJa LbkC"
|
||||||
|
/>
|
||||||
|
<a
|
||||||
|
className="sc-iwsKbI leRHZB"
|
||||||
|
href="/about"
|
||||||
|
onClick={Function {}}
|
||||||
|
>
|
||||||
|
<div
|
||||||
|
className="sc-gqjmRU emCKSy"
|
||||||
|
>
|
||||||
|
Next:
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
className="sc-gqjmRU entfAd"
|
||||||
|
>
|
||||||
|
About
|
||||||
|
</div>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</main>
|
||||||
|
</div>,
|
||||||
|
|
||||||
|
|
||||||
|
## scope.blockquote renders
|
||||||
|
|
||||||
|
> Snapshot 1
|
||||||
|
|
||||||
|
<blockquote
|
||||||
|
className="sc-chPdSV gReYnD sc-gqjmRU cbBDfA"
|
||||||
|
/>
|
||||||
|
|
||||||
|
## scope.code renders
|
||||||
|
|
||||||
|
> Snapshot 1
|
||||||
|
|
||||||
|
<pre
|
||||||
|
className="sc-kGXeez YhsQM"
|
||||||
|
/>
|
||||||
|
|
||||||
|
## scope.h1 renders
|
||||||
|
|
||||||
|
> Snapshot 1
|
||||||
|
|
||||||
|
<h1
|
||||||
|
className="sc-VigVT giyuVg"
|
||||||
|
/>
|
||||||
|
|
||||||
|
## scope.h2 renders
|
||||||
|
|
||||||
|
> Snapshot 1
|
||||||
|
|
||||||
|
<h2
|
||||||
|
className="sc-VigVT hvHavN"
|
||||||
|
/>
|
||||||
|
|
||||||
|
## scope.h3 renders
|
||||||
|
|
||||||
|
> Snapshot 1
|
||||||
|
|
||||||
|
<h3
|
||||||
|
className="sc-VigVT cdnBzZ"
|
||||||
|
/>
|
||||||
|
|
||||||
|
## scope.h4 renders
|
||||||
|
|
||||||
|
> Snapshot 1
|
||||||
|
|
||||||
|
<h4
|
||||||
|
className="sc-VigVT bFQvfC"
|
||||||
|
/>
|
||||||
|
|
||||||
|
## scope.h5 renders
|
||||||
|
|
||||||
|
> Snapshot 1
|
||||||
|
|
||||||
|
<h5
|
||||||
|
className="sc-VigVT cmwWQF"
|
||||||
|
/>
|
||||||
|
|
||||||
|
## scope.h6 renders
|
||||||
|
|
||||||
|
> Snapshot 1
|
||||||
|
|
||||||
|
<h6
|
||||||
|
className="sc-VigVT hUIvmu"
|
||||||
|
/>
|
||||||
|
|
||||||
|
## scope.hr renders
|
||||||
|
|
||||||
|
> Snapshot 1
|
||||||
|
|
||||||
|
<hr
|
||||||
|
className="sc-kgoBCf hVsSJm"
|
||||||
|
/>
|
||||||
|
|
||||||
|
## scope.img renders
|
||||||
|
|
||||||
|
> Snapshot 1
|
||||||
|
|
||||||
|
<img
|
||||||
|
className="sc-cvbbAY exTuBk"
|
||||||
|
/>
|
||||||
|
|
||||||
|
## scope.inlineCode renders
|
||||||
|
|
||||||
|
> Snapshot 1
|
||||||
|
|
||||||
|
<code
|
||||||
|
className="sc-kpOJdX eABHTa"
|
||||||
|
/>
|
||||||
|
|
||||||
|
## scope.li renders
|
||||||
|
|
||||||
|
> Snapshot 1
|
||||||
|
|
||||||
|
<li
|
||||||
|
className="sc-gqjmRU bxHISe"
|
||||||
|
/>
|
||||||
|
|
||||||
|
## scope.p renders
|
||||||
|
|
||||||
|
> Snapshot 1
|
||||||
|
|
||||||
|
<p
|
||||||
|
className="sc-gqjmRU jWPlsU"
|
||||||
|
/>
|
||||||
|
|
||||||
|
## scope.table renders
|
||||||
|
|
||||||
|
> Snapshot 1
|
||||||
|
|
||||||
|
<table
|
||||||
|
className="sc-htpNat jBAZTS"
|
||||||
|
/>
|
||||||
|
|
||||||
|
## scope.ul renders
|
||||||
|
|
||||||
|
> Snapshot 1
|
||||||
|
|
||||||
|
<ul
|
||||||
|
className="sc-htpNat houaHu"
|
||||||
|
/
|
||||||
|
|
||||||
|
## scope.a renders
|
||||||
|
|
||||||
|
> Snapshot 1
|
||||||
|
|
||||||
|
<a
|
||||||
|
className="sc-htoDjs gLCdRU"
|
||||||
|
href="/"
|
||||||
|
onClick={Function {}}
|
||||||
|
/
|
||||||
|
|
||||||
|
## Catch renders error
|
||||||
|
|
||||||
|
> Snapshot 1
|
||||||
|
|
||||||
|
<pre
|
||||||
|
style={
|
||||||
|
{
|
||||||
|
backgroundColor: 'red',
|
||||||
|
color: 'white',
|
||||||
|
fontFamily: 'Menlo, monospace',
|
||||||
|
fontSize: '14px',
|
||||||
|
margin: 0,
|
||||||
|
minHeight: '128px',
|
||||||
|
padding: '16px',
|
||||||
|
whiteSpace: 'prewrap',
|
||||||
|
}
|
||||||
|
}
|
||||||
|
>
|
||||||
|
Error: nope
|
||||||
|
</pre
|
||||||
|
|
||||||
|
## scope.a renders a plain link for absolute URLs
|
||||||
|
|
||||||
|
> Snapshot 1
|
||||||
|
|
||||||
|
<a
|
||||||
|
className="sc-htoDjs gLCdRU"
|
||||||
|
href="http://example.com"
|
||||||
|
>
|
||||||
|
Hello
|
||||||
|
</a>
|
BIN
test/snapshots/components.js.snap
Normal file
BIN
test/snapshots/components.js.snap
Normal file
Binary file not shown.
Loading…
Reference in New Issue
Block a user