Skip to content

Commit 9180c5c

Browse files
committed
Setup tests
1 parent 319effb commit 9180c5c

File tree

9 files changed

+128
-6
lines changed

9 files changed

+128
-6
lines changed

.babelrc

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
{
2+
"presets": ["react-native"]
3+
}

.editorconfig

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
# http://editorconfig.org
2+
root = true
3+
4+
[*]
5+
indent_style = space
6+
indent_size = 2
7+
end_of_line = lf
8+
charset = utf-8
9+
trim_trailing_whitespace = true
10+
insert_final_newline = true
11+
12+
[*.md]
13+
trim_trailing_whitespace = false

.eslintrc

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
{
2+
"extends": "airbnb",
3+
"parser": "babel-eslint",
4+
"rules": {
5+
"react/jsx-filename-extension": [1, { "extensions": [".js", ".jsx"] }],
6+
"import/no-extraneous-dependencies": [0],
7+
"import/no-unresolved": [2, { ignore: ['^react(-native)?$'] }],
8+
"import/extensions": [2, { "js": "never", "json": "always" }]
9+
}
10+
}

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
node_modules/**/*
2+
npm-debug.*

exemple/main.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ const TvShow = () => (
1818
<StatusBar barStyle="light-content" />
1919
<HeaderImageScrollView
2020
maxHeight={200}
21-
minHeight={50}
21+
minHeight={66}
2222
renderHeader={() => (
2323
<Image source={tvShowContent.image} style={styles.image} />
2424
)}

package.json

Lines changed: 26 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,10 @@
44
"description": "ScrollView with an image in header which become a navbar",
55
"main": "src/index.js",
66
"scripts": {
7-
"test": "jest"
7+
"jest": "jest",
8+
"jest:watch": "npm run jest -- --watch",
9+
"lint": "eslint src/*.js",
10+
"test": "npm run lint && npm run jest"
811
},
912
"files": [
1013
"README.md",
@@ -30,5 +33,26 @@
3033
"bugs": {
3134
"url": "https://github.com/bamlab/react-native-image-header-scroll-view/issues"
3235
},
33-
"homepage": "https://github.com/bamlab/react-native-image-header-scroll-view#readme"
36+
"homepage": "https://github.com/bamlab/react-native-image-header-scroll-view#readme",
37+
"devDependencies": {
38+
"babel-core": "^6.22.1",
39+
"babel-eslint": "^7.1.1",
40+
"babel-jest": "^18.0.0",
41+
"babel-preset-react-native": "^1.9.1",
42+
"eslint": "^3.12.2",
43+
"eslint-config-airbnb": "^13.0.0",
44+
"eslint-plugin-import": "^2.2.0",
45+
"eslint-plugin-jsx-a11y": "^2.0.0",
46+
"eslint-plugin-react": "^6.8.0",
47+
"jest": "^18.1.0",
48+
"react": "^15.4.2",
49+
"react-native": "^0.40.0",
50+
"react-test-renderer": "^15.4.2"
51+
},
52+
"jest": {
53+
"preset": "react-native",
54+
"modulePathIgnorePatterns": [
55+
"<rootDir>/exemple/"
56+
]
57+
}
3458
}
Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
exports[`test renders correctly by default 1`] = `
2+
<View
3+
style={
4+
Object {
5+
"flex": 1,
6+
}
7+
}>
8+
<ScrollView
9+
onScroll={[Function]}
10+
scrollEventThrottle={16}
11+
style={
12+
Object {
13+
"flex": 1,
14+
}
15+
}>
16+
<View
17+
style={
18+
Object {
19+
"paddingTop": 125,
20+
}
21+
} />
22+
</ScrollView>
23+
<View
24+
style={
25+
Object {
26+
"height": 125,
27+
"left": 0,
28+
"overflow": "hidden",
29+
"position": "absolute",
30+
"right": 0,
31+
"top": 0,
32+
"transform": Array [
33+
Object {
34+
"scale": 1,
35+
},
36+
],
37+
}
38+
}>
39+
<View
40+
style={
41+
Object {
42+
"backgroundColor": "black",
43+
"bottom": 0,
44+
"left": 0,
45+
"opacity": 0,
46+
"position": "absolute",
47+
"right": 0,
48+
"top": 0,
49+
"zIndex": 100,
50+
}
51+
} />
52+
<View />
53+
</View>
54+
</View>
55+
`;

src/__tests__/index.js

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

src/index.js

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,10 @@ class ImageHeaderScrollView extends Component {
5151
}
5252

5353
renderHeader() {
54-
const headerHeight = this.interpolateOnImageHeight([this.props.maxHeight, this.props.minHeight]);
54+
const headerHeight = this.interpolateOnImageHeight([
55+
this.props.maxHeight,
56+
this.props.minHeight,
57+
]);
5558
const overlayOpacity = this.interpolateOnImageHeight([0, this.props.maxOverlayOpacity]);
5659

5760
const headerScale = this.state.scrollY.interpolate({
@@ -60,8 +63,9 @@ class ImageHeaderScrollView extends Component {
6063
extrapolate: 'clamp',
6164
});
6265

66+
const headerTransformStyle = { height: headerHeight, transform: [{ scale: headerScale }] };
6367
return (
64-
<Animated.View style={[styles.header, { height: headerHeight, transform: [{ scale: headerScale }] }]}>
68+
<Animated.View style={[styles.header, headerTransformStyle]}>
6569
<Animated.View style={[styles.blackOverlay, { opacity: overlayOpacity }]} />
6670
{ this.props.renderHeader() }
6771
</Animated.View>
@@ -77,7 +81,7 @@ class ImageHeaderScrollView extends Component {
7781
onScroll={Animated.event(
7882
[{ nativeEvent: { contentOffset: { y: this.state.scrollY } } }],
7983
)}
80-
>
84+
>
8185
<Animated.View style={[{ paddingTop: this.props.maxHeight }, this.props.childrenStyle]}>
8286
{this.props.children}
8387
</Animated.View>

0 commit comments

Comments
 (0)