Skip to content

Commit 732c551

Browse files
author
lttb
committed
Add snapshot tests
1 parent 180962a commit 732c551

6 files changed

Lines changed: 112 additions & 2 deletions

File tree

.babelrc

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
{
2+
presets: [
3+
'react',
4+
],
25
plugins: [
36
'transform-es2015-modules-commonjs',
4-
["transform-object-rest-spread", { "useBuiltIns": true }],
7+
['transform-object-rest-spread', { useBuiltIns: true }],
58
]
69
}

package.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,9 @@
3838
"babel-core": "^6.23.1",
3939
"babel-plugin-transform-es2015-modules-commonjs": "^6.23.0",
4040
"babel-plugin-transform-object-rest-spread": "^6.23.0",
41+
"babel-preset-react": "^6.23.0",
4142
"eslint": "^3.13.0",
42-
"jest": "^18.1.0"
43+
"jest": "^18.1.0",
44+
"react-test-renderer": "^15.4.2"
4345
}
4446
}

src/tests/.eslintrc

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
rules:
2+
import/no-extraneous-dependencies:
3+
- error
4+
- devDependencies: true

src/tests/App.jsx

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
import React from 'react'
2+
3+
import Styled from '../'
4+
5+
6+
const styled = Styled({
7+
app: {
8+
margin: '50px',
9+
},
10+
header: {
11+
padding: '10px',
12+
},
13+
content: {
14+
padding: ({ padding }) => `${padding}px`,
15+
},
16+
h1: {
17+
color: 'red',
18+
},
19+
p: {
20+
border: '1px solid black',
21+
},
22+
text: {
23+
color: 'green',
24+
},
25+
button: {
26+
margin: ({ margin = 0 }) => `${margin}px`,
27+
},
28+
})
29+
30+
const Header = () => (
31+
<styled.header>
32+
<styled.h1>Just H1</styled.h1>
33+
<styled.h1 force composes="text">Force test</styled.h1>
34+
</styled.header>
35+
)
36+
37+
const Content = () => (
38+
<styled.section
39+
composes="content"
40+
attrs={{
41+
'data-name': 'content',
42+
}}
43+
padding={20}
44+
>
45+
<styled.p composes="text h1">compose multiple classes test</styled.p>
46+
47+
<styled.button>primitive test</styled.button>
48+
<styled.button margin={10}>dynamic primitive test</styled.button>
49+
</styled.section>
50+
)
51+
52+
export default () => (
53+
<styled.app>
54+
<Header />
55+
56+
<Content />
57+
</styled.app>
58+
)
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
exports[`test renders correctly 1`] = `
2+
<div
3+
className="app-0-0">
4+
<header
5+
className="header-0-1">
6+
<h1
7+
className="h1-0-3">
8+
Just H1
9+
</h1>
10+
<h1
11+
className="text-0-5">
12+
Force test
13+
</h1>
14+
</header>
15+
<section
16+
className="content-0-14 content-0-9"
17+
data-name="content">
18+
<p
19+
className="text-0-5 h1-0-3 p-0-4">
20+
compose multiple classes test
21+
</p>
22+
<button
23+
className="button-0-6">
24+
primitive test
25+
</button>
26+
<button
27+
className="button-0-24 button-0-22">
28+
dynamic primitive test
29+
</button>
30+
</section>
31+
</div>
32+
`;

src/tests/index.spec.jsx

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
import renderer from 'react-test-renderer'
2+
3+
import React from 'react'
4+
import App from './App'
5+
6+
7+
it('renders correctly', () => {
8+
const tree = renderer.create(<App />).toJSON()
9+
10+
expect(tree).toMatchSnapshot()
11+
})

0 commit comments

Comments
 (0)