Skip to content

Commit c967ea6

Browse files
tests(react-jss): added tests for createUseStyles
1 parent 59003b4 commit c967ea6

File tree

2 files changed

+78
-22
lines changed

2 files changed

+78
-22
lines changed

packages/react-jss/.size-snapshot.json

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,23 @@
11
{
22
"dist/react-jss.js": {
3-
"bundled": 130189,
4-
"minified": 46655,
5-
"gzipped": 16051
3+
"bundled": 171071,
4+
"minified": 59339,
5+
"gzipped": 19438
66
},
77
"dist/react-jss.min.js": {
8-
"bundled": 103803,
9-
"minified": 38662,
10-
"gzipped": 13692
8+
"bundled": 114048,
9+
"minified": 42598,
10+
"gzipped": 14460
1111
},
1212
"dist/react-jss.cjs.js": {
13-
"bundled": 26922,
14-
"minified": 11621,
15-
"gzipped": 3848
13+
"bundled": 27447,
14+
"minified": 12023,
15+
"gzipped": 3885
1616
},
1717
"dist/react-jss.esm.js": {
18-
"bundled": 25951,
19-
"minified": 10777,
20-
"gzipped": 3726,
18+
"bundled": 25941,
19+
"minified": 10783,
20+
"gzipped": 3728,
2121
"treeshaked": {
2222
"rollup": {
2323
"code": 1838,
Lines changed: 66 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,72 @@
11
/* eslint-disable react/prop-types */
2-
import createUseStyles from './createUseStyles'
3-
import createBasicTests from '../test-utils/createBasicTests'
42

5-
const createStyledComponent = (styles, options) => {
6-
const useStyles = createUseStyles(styles, options)
7-
const Comp = props => {
8-
useStyles(props)
9-
return null
10-
}
11-
return Comp
3+
import expect from 'expect.js'
4+
import React from 'react'
5+
import TestRenderer from 'react-test-renderer'
6+
import {stripIndent} from 'common-tags'
7+
8+
import {SheetsRegistry, JssProvider, ThemeProvider, createUseStyles} from '.'
9+
10+
const createGenerateId = () => {
11+
let counter = 0
12+
return rule => `${rule.key}-${counter++}`
13+
}
14+
15+
const theme: Object = {
16+
background: 'yellow',
17+
background2: 'red'
1218
}
1319

1420
describe('React-JSS: createUseStyles', () => {
15-
createBasicTests({createStyledComponent})
21+
it('should render multiple elements with applied media query', () => {
22+
const registry = new SheetsRegistry()
23+
const useStyles = createUseStyles(themeObj => ({
24+
wrapper: () => ({
25+
padding: 40,
26+
background: themeObj.background,
27+
textAlign: 'left',
28+
'@media (min-width: 1024px)': {
29+
backgroundColor: themeObj.background2
30+
}
31+
})
32+
}))
33+
34+
const Comp = () => {
35+
const classes = useStyles(theme)
36+
return <div className={classes.wrapper} />
37+
}
38+
39+
const a = [1, 2]
40+
TestRenderer.create(
41+
<JssProvider registry={registry} generateId={createGenerateId()}>
42+
<ThemeProvider theme={theme}>
43+
{a.map(item => (
44+
<Comp key={item} />
45+
))}
46+
</ThemeProvider>
47+
</JssProvider>
48+
)
49+
expect(registry.toString()).to.be(stripIndent`
50+
.wrapper-0 {}
51+
.wrapper-d0-1 {
52+
padding: 40px;
53+
background: yellow;
54+
text-align: left;
55+
}
56+
@media (min-width: 1024px) {
57+
.wrapper-d0-1 {
58+
background-color: red;
59+
}
60+
}
61+
.wrapper-d1-2 {
62+
padding: 40px;
63+
background: yellow;
64+
text-align: left;
65+
}
66+
@media (min-width: 1024px) {
67+
.wrapper-d1-2 {
68+
background-color: red;
69+
}
70+
}`)
71+
})
1672
})

0 commit comments

Comments
 (0)