/
indexSnapshot.js
93 lines (78 loc) · 2.18 KB
/
indexSnapshot.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
/* @flow */
import React from 'react';
import {
Platform,
Text,
View,
YellowBox,
} from 'react-native';
import { WebView } from 'react-native-webview';
import {
registerSnapshot,
runSnapshots,
Snapshot,
} from 'pixels-catcher';
import App from './App';
import { name as appName } from './app.json';
const baseUrl = Platform.select({ // Put real IP of your server to run on real device
android: 'http://10.0.2.2:3000',
ios: 'http://127.0.0.1:3000',
});
registerSnapshot(class SnapshotClass extends Snapshot {
static snapshotName = 'AppSnapshot';
renderContent() {
return (
<App />
);
}
});
registerSnapshot(class SnapshotClass extends Snapshot {
static snapshotName = 'AppSnapshotWithWrongRefImg';
renderContent() {
return (
<App />
);
}
});
registerSnapshot(class SnapshotClass extends Snapshot {
static snapshotName = 'someComponent';
renderContent() {
return (
<View style={{ backgroundColor: 'yellow' }}><Text>Some component</Text></View>
);
}
});
// Disable warning fot the test
YellowBox.ignoreWarnings(['Warning: WebView has been extracted']);
registerSnapshot(class SnapshotClass extends Snapshot {
static snapshotName = 'WebViewTest';
componentDidMount() {
// override default componentDidMount from Snapshot to delay it
// until WebView is loaded. onLoad from WebView is used
}
renderContent() {
return (
<WebView
source={{uri: 'https://github.com/rumax/react-native-PixelsCatcher'}}
style={{ flex: 1, marginTop: 20 }}
onLoad={() => {
this.props.onReady();
}} />
);
}
});
registerSnapshot(class SnapshotClass extends Snapshot {
static snapshotName = 'longContent';
renderContent() {
return (
<View style={{ flex: 1, flexDirection: 'column' }}>
<View style={{height: 200, backgroundColor: '#FFA07A'}} />
<View style={{height: 300, backgroundColor: '#E9967A'}} />
<View style={{height: 400, backgroundColor: '#FA8072'}} />
<View style={{height: 500, backgroundColor: '#F08080'}} />
<View style={{height: 600, backgroundColor: '#CD5C5C'}} />
</View>
);
}
});
runSnapshots(appName, { baseUrl });