Skip to content

Commit 1e70d01

Browse files
committed
add preliminary tests using jest and react-testing-library
1 parent 5dc648d commit 1e70d01

File tree

4 files changed

+96
-90
lines changed

4 files changed

+96
-90
lines changed

.gitignore

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,11 @@
33
*.iml
44
.*.haste_cache.*
55
.DS_Store
6-
.idea
76
npm-debug.log
87
yarn-error.log
9-
node_modules
10-
lib
11-
dist
12-
.docz
8+
.idea/
9+
node_modules/
10+
lib/
11+
dist/
12+
.docz/
13+
coverage/

package.json

Lines changed: 36 additions & 85 deletions
Original file line numberDiff line numberDiff line change
@@ -18,15 +18,23 @@
1818
"dist",
1919
"typings/react-popper-tooltip.d.ts"
2020
],
21+
"sideEffects": [
22+
"*.css"
23+
],
2124
"scripts": {
2225
"build": "rimraf dist lib && rollup -c && cp src/styles.css dist",
2326
"prepublishOnly": "yarn lint && yarn build",
2427
"docs": "docz dev",
2528
"docs:build": "docz build",
2629
"docs:deploy": "yarn docs:build && cp .docz/dist/index.html .docz/dist/404.html && gh-pages -d .docz/dist",
27-
"lint": "eslint ."
30+
"lint": "eslint .",
31+
"test": "jest",
32+
"test:watch": "jest --watch"
2833
},
29-
"pre-commit": "lint",
34+
"pre-commit": [
35+
"lint",
36+
"test"
37+
],
3038
"keywords": [
3139
"react",
3240
"tooltip",
@@ -37,107 +45,50 @@
3745
],
3846
"author": "Mohsin Ul Haq <[email protected]>",
3947
"license": "MIT",
40-
"browserslist": [
41-
">0.2%",
42-
"not dead",
43-
"not ie <= 11",
44-
"not op_mini all"
45-
],
46-
"prettier": {
47-
"singleQuote": true
48-
},
49-
"eslintConfig": {
50-
"env": {
51-
"browser": true,
52-
"es6": true,
53-
"node": true
54-
},
55-
"parser": "babel-eslint",
56-
"extends": [
57-
"eslint:recommended",
58-
"plugin:react/recommended",
59-
"plugin:jsx-a11y/recommended",
60-
"plugin:prettier/recommended"
61-
],
62-
"parserOptions": {
63-
"ecmaFeatures": {
64-
"jsx": true
65-
},
66-
"ecmaVersion": 2018,
67-
"sourceType": "module"
68-
},
69-
"plugins": [
70-
"react",
71-
"jsx-a11y"
72-
],
73-
"settings": {
74-
"react": {
75-
"version": "latest"
76-
}
77-
},
78-
"rules": {
79-
"indent": [
80-
"error",
81-
2
82-
],
83-
"linebreak-style": [
84-
"error",
85-
"unix"
86-
],
87-
"quotes": [
88-
"error",
89-
"single"
90-
],
91-
"semi": [
92-
"error",
93-
"always"
94-
]
95-
}
96-
},
97-
"eslintIgnore": [
98-
"dist",
99-
"lib",
100-
"docs"
101-
],
10248
"peerDependencies": {
103-
"react": "^16.6.0",
104-
"react-dom": "^16.6.0"
49+
"react": "^16.6.3",
50+
"react-dom": "^16.6.3"
10551
},
10652
"dependencies": {
107-
"@babel/runtime": "^7.1.2",
108-
"react-popper": "^1.0.2"
53+
"@babel/runtime": "^7.2.0",
54+
"react-popper": "^1.3.0"
10955
},
11056
"devDependencies": {
111-
"@babel/cli": "^7.1.2",
112-
"@babel/core": "^7.1.2",
113-
"@babel/plugin-proposal-class-properties": "^7.1.0",
114-
"@babel/plugin-transform-runtime": "^7.1.0",
115-
"@babel/preset-env": "^7.1.0",
57+
"@babel/cli": "^7.2.0",
58+
"@babel/core": "^7.2.0",
59+
"@babel/plugin-proposal-class-properties": "^7.2.1",
60+
"@babel/plugin-transform-runtime": "^7.2.0",
61+
"@babel/preset-env": "^7.2.0",
11662
"@babel/preset-react": "^7.0.0",
63+
"@types/jest": "^23.3.10",
64+
"@types/react": "^16.7.13",
65+
"@types/react-dom": "^16.0.11",
66+
"babel-core": "^7.0.0-bridge",
11767
"babel-eslint": "^10.0.1",
118-
"babel-plugin-transform-react-remove-prop-types": "^0.4.19",
119-
"docz": "^0.12.5",
68+
"babel-jest": "^23.6.0",
69+
"babel-plugin-transform-react-remove-prop-types": "^0.4.21",
70+
"docz": "^0.12.15",
12071
"docz-plugin-css": "^0.11.0",
121-
"eslint": "^5.8.0",
122-
"eslint-config-prettier": "^3.1.0",
72+
"eslint": "^5.9.0",
73+
"eslint-config-prettier": "^3.3.0",
74+
"eslint-plugin-jest": "^22.1.2",
12375
"eslint-plugin-jsx-a11y": "^6.1.2",
12476
"eslint-plugin-prettier": "^3.0.0",
12577
"eslint-plugin-react": "^7.11.1",
12678
"gh-pages": "^2.0.1",
79+
"jest": "^23.6.0",
12780
"pre-commit": "^1.2.2",
128-
"prettier": "^1.14.3",
81+
"prettier": "^1.15.3",
12982
"prop-types": "^15.6.2",
130-
"react": "^16.6.0",
131-
"react-dom": "^16.6.0",
83+
"react": "^16.6.3",
84+
"react-dom": "^16.6.3",
85+
"react-testing-library": "^5.3.1",
13286
"rimraf": "^2.6.2",
133-
"rollup": "^0.66.6",
87+
"rollup": "^0.67.4",
13488
"rollup-plugin-babel": "^4.0.3",
13589
"rollup-plugin-commonjs": "^9.2.0",
13690
"rollup-plugin-node-resolve": "^3.4.0",
13791
"rollup-plugin-size-snapshot": "^0.7.0",
13892
"rollup-plugin-terser": "^3.0.0"
139-
},
140-
"sideEffects": [
141-
"*.css"
142-
]
93+
}
14394
}

tests/TooltipTrigger.spec.js

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
import React from 'react';
2+
import {render} from 'react-testing-library';
3+
import TooltipTrigger from '../src';
4+
5+
const Tooltip = ({
6+
getTooltipProps,
7+
getArrowProps,
8+
tooltipRef,
9+
arrowRef,
10+
placement
11+
}) => (
12+
<div
13+
{...getTooltipProps({
14+
ref: tooltipRef,
15+
className: 'tooltip-container'
16+
})}
17+
>
18+
<div
19+
{...getArrowProps({
20+
ref: arrowRef,
21+
'data-placement': placement,
22+
className: 'tooltip-arrow'
23+
})}
24+
/>
25+
World
26+
</div>
27+
);
28+
29+
const Trigger = ({getTriggerProps, triggerRef}) => (
30+
<span
31+
{...getTriggerProps({
32+
ref: triggerRef,
33+
className: 'trigger'
34+
})}
35+
>
36+
Hello
37+
</span>
38+
);
39+
40+
it('matches snapshot', () => {
41+
const {container} = render(
42+
<TooltipTrigger tooltip={Tooltip}>{Trigger}</TooltipTrigger>
43+
);
44+
expect(container.firstChild).toMatchSnapshot();
45+
});
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
// Jest Snapshot v1, https://goo.gl/fbAQLP
2+
3+
exports[`matches snapshot 1`] = `
4+
<span
5+
class="trigger"
6+
>
7+
Hello
8+
</span>
9+
`;

0 commit comments

Comments
 (0)