Skip to content

Commit 7ac412b

Browse files
committed
test: add RN 64 test
1 parent 273af8a commit 7ac412b

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

60 files changed

+9297
-2
lines changed

Diff for: package.json

+4-2
Original file line numberDiff line numberDiff line change
@@ -31,9 +31,11 @@
3131
},
3232
"scripts": {
3333
"test": "yarn test:rn && yarn test:expo",
34-
"test:rn": "cd test/RN61 && yarn install && npx ../.. && cd ../..",
34+
"test:rn": "yarn test:rn:61 && yarn test:rn:64",
35+
"test:rn:61": "cd test/RN61 && yarn install && npx ../.. && cd ../..",
36+
"test:rn:64": "cd test/RN64 && yarn install && npx ../.. && cd ../..",
3537
"test:expo": "yarn test:expo:36 && yarn test:expo:42",
3638
"test:expo:36": "cd test/Expo36 && yarn install && npx ../.. --expo managed && cd ../..",
37-
"test:expo:42": "cd test/Expo42 && yarn install && npx ../.. --expo managed && cd ../.."
39+
"test:expo:42": "cd test/Expo42 && yarn install && npx ../.. && cd ../.."
3840
}
3941
}

Diff for: test/RN64/.buckconfig

+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
2+
[android]
3+
target = Google Inc.:Google APIs:23
4+
5+
[maven_repositories]
6+
central = https://repo1.maven.org/maven2

Diff for: test/RN64/.editorconfig

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
# Windows files
2+
[*.bat]
3+
end_of_line = crlf

Diff for: test/RN64/.eslintrc.js

+4
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
module.exports = {
2+
root: true,
3+
extends: '@react-native-community',
4+
};

Diff for: test/RN64/.flowconfig

+66
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
[ignore]
2+
; We fork some components by platform
3+
.*/*[.]android.js
4+
5+
; Ignore "BUCK" generated dirs
6+
<PROJECT_ROOT>/\.buckd/
7+
8+
; Ignore polyfills
9+
node_modules/react-native/Libraries/polyfills/.*
10+
11+
; Flow doesn't support platforms
12+
.*/Libraries/Utilities/LoadingView.js
13+
14+
[untyped]
15+
.*/node_modules/@react-native-community/cli/.*/.*
16+
17+
[include]
18+
19+
[libs]
20+
node_modules/react-native/interface.js
21+
node_modules/react-native/flow/
22+
23+
[options]
24+
emoji=true
25+
26+
esproposal.optional_chaining=enable
27+
esproposal.nullish_coalescing=enable
28+
29+
exact_by_default=true
30+
31+
module.file_ext=.js
32+
module.file_ext=.json
33+
module.file_ext=.ios.js
34+
35+
munge_underscores=true
36+
37+
module.name_mapper='^react-native/\(.*\)$' -> '<PROJECT_ROOT>/node_modules/react-native/\1'
38+
module.name_mapper='^@?[./a-zA-Z0-9$_-]+\.\(bmp\|gif\|jpg\|jpeg\|png\|psd\|svg\|webp\|m4v\|mov\|mp4\|mpeg\|mpg\|webm\|aac\|aiff\|caf\|m4a\|mp3\|wav\|html\|pdf\)$' -> '<PROJECT_ROOT>/node_modules/react-native/Libraries/Image/RelativeImageStub'
39+
40+
suppress_type=$FlowIssue
41+
suppress_type=$FlowFixMe
42+
suppress_type=$FlowFixMeProps
43+
suppress_type=$FlowFixMeState
44+
45+
[lints]
46+
sketchy-null-number=warn
47+
sketchy-null-mixed=warn
48+
sketchy-number=warn
49+
untyped-type-import=warn
50+
nonstrict-import=warn
51+
deprecated-type=warn
52+
unsafe-getters-setters=warn
53+
unnecessary-invariant=warn
54+
signature-verification-failure=warn
55+
56+
[strict]
57+
deprecated-type
58+
nonstrict-import
59+
sketchy-null
60+
unclear-type
61+
unsafe-getters-setters
62+
untyped-import
63+
untyped-type-import
64+
65+
[version]
66+
^0.137.0

Diff for: test/RN64/.gitattributes

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
# Windows files should use crlf line endings
2+
# https://help.github.com/articles/dealing-with-line-endings/
3+
*.bat text eol=crlf

Diff for: test/RN64/.gitignore

+59
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
# OSX
2+
#
3+
.DS_Store
4+
5+
# Xcode
6+
#
7+
build/
8+
*.pbxuser
9+
!default.pbxuser
10+
*.mode1v3
11+
!default.mode1v3
12+
*.mode2v3
13+
!default.mode2v3
14+
*.perspectivev3
15+
!default.perspectivev3
16+
xcuserdata
17+
*.xccheckout
18+
*.moved-aside
19+
DerivedData
20+
*.hmap
21+
*.ipa
22+
*.xcuserstate
23+
24+
# Android/IntelliJ
25+
#
26+
build/
27+
.idea
28+
.gradle
29+
local.properties
30+
*.iml
31+
32+
# node.js
33+
#
34+
node_modules/
35+
npm-debug.log
36+
yarn-error.log
37+
38+
# BUCK
39+
buck-out/
40+
\.buckd/
41+
*.keystore
42+
!debug.keystore
43+
44+
# fastlane
45+
#
46+
# It is recommended to not store the screenshots in the git repo. Instead, use fastlane to re-generate the
47+
# screenshots whenever they are needed.
48+
# For more information about the recommended setup visit:
49+
# https://docs.fastlane.tools/best-practices/source-control/
50+
51+
*/fastlane/report.xml
52+
*/fastlane/Preview.html
53+
*/fastlane/screenshots
54+
55+
# Bundle artifact
56+
*.jsbundle
57+
58+
# CocoaPods
59+
/ios/Pods/

Diff for: test/RN64/.prettierrc.js

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
module.exports = {
2+
bracketSpacing: false,
3+
jsxBracketSameLine: true,
4+
singleQuote: true,
5+
trailingComma: 'all',
6+
arrowParens: 'avoid',
7+
};

Diff for: test/RN64/.watchmanconfig

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{}

Diff for: test/RN64/App.js

+112
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,112 @@
1+
/**
2+
* Sample React Native App
3+
* https://github.com/facebook/react-native
4+
*
5+
* @format
6+
* @flow strict-local
7+
*/
8+
9+
import React from 'react';
10+
import type {Node} from 'react';
11+
import {
12+
SafeAreaView,
13+
ScrollView,
14+
StatusBar,
15+
StyleSheet,
16+
Text,
17+
useColorScheme,
18+
View,
19+
} from 'react-native';
20+
21+
import {
22+
Colors,
23+
DebugInstructions,
24+
Header,
25+
LearnMoreLinks,
26+
ReloadInstructions,
27+
} from 'react-native/Libraries/NewAppScreen';
28+
29+
const Section = ({children, title}): Node => {
30+
const isDarkMode = useColorScheme() === 'dark';
31+
return (
32+
<View style={styles.sectionContainer}>
33+
<Text
34+
style={[
35+
styles.sectionTitle,
36+
{
37+
color: isDarkMode ? Colors.white : Colors.black,
38+
},
39+
]}>
40+
{title}
41+
</Text>
42+
<Text
43+
style={[
44+
styles.sectionDescription,
45+
{
46+
color: isDarkMode ? Colors.light : Colors.dark,
47+
},
48+
]}>
49+
{children}
50+
</Text>
51+
</View>
52+
);
53+
};
54+
55+
const App: () => Node = () => {
56+
const isDarkMode = useColorScheme() === 'dark';
57+
58+
const backgroundStyle = {
59+
backgroundColor: isDarkMode ? Colors.darker : Colors.lighter,
60+
};
61+
62+
return (
63+
<SafeAreaView style={backgroundStyle}>
64+
<StatusBar barStyle={isDarkMode ? 'light-content' : 'dark-content'} />
65+
<ScrollView
66+
contentInsetAdjustmentBehavior="automatic"
67+
style={backgroundStyle}>
68+
<Header />
69+
<View
70+
style={{
71+
backgroundColor: isDarkMode ? Colors.black : Colors.white,
72+
}}>
73+
<Section title="Step One">
74+
Edit <Text style={styles.highlight}>App.js</Text> to change this
75+
screen and then come back to see your edits.
76+
</Section>
77+
<Section title="See Your Changes">
78+
<ReloadInstructions />
79+
</Section>
80+
<Section title="Debug">
81+
<DebugInstructions />
82+
</Section>
83+
<Section title="Learn More">
84+
Read the docs to discover what to do next:
85+
</Section>
86+
<LearnMoreLinks />
87+
</View>
88+
</ScrollView>
89+
</SafeAreaView>
90+
);
91+
};
92+
93+
const styles = StyleSheet.create({
94+
sectionContainer: {
95+
marginTop: 32,
96+
paddingHorizontal: 24,
97+
},
98+
sectionTitle: {
99+
fontSize: 24,
100+
fontWeight: '600',
101+
},
102+
sectionDescription: {
103+
marginTop: 8,
104+
fontSize: 18,
105+
fontWeight: '400',
106+
},
107+
highlight: {
108+
fontWeight: '700',
109+
},
110+
});
111+
112+
export default App;

Diff for: test/RN64/__tests__/App-test.js

+14
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
/**
2+
* @format
3+
*/
4+
5+
import 'react-native';
6+
import React from 'react';
7+
import App from '../App';
8+
9+
// Note: test renderer must be required after react-native.
10+
import renderer from 'react-test-renderer';
11+
12+
it('renders correctly', () => {
13+
renderer.create(<App />);
14+
});

Diff for: test/RN64/android/app/_BUCK

+55
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
# To learn about Buck see [Docs](https://buckbuild.com/).
2+
# To run your application with Buck:
3+
# - install Buck
4+
# - `npm start` - to start the packager
5+
# - `cd android`
6+
# - `keytool -genkey -v -keystore keystores/debug.keystore -storepass android -alias androiddebugkey -keypass android -dname "CN=Android Debug,O=Android,C=US"`
7+
# - `./gradlew :app:copyDownloadableDepsToLibs` - make all Gradle compile dependencies available to Buck
8+
# - `buck install -r android/app` - compile, install and run application
9+
#
10+
11+
load(":build_defs.bzl", "create_aar_targets", "create_jar_targets")
12+
13+
lib_deps = []
14+
15+
create_aar_targets(glob(["libs/*.aar"]))
16+
17+
create_jar_targets(glob(["libs/*.jar"]))
18+
19+
android_library(
20+
name = "all-libs",
21+
exported_deps = lib_deps,
22+
)
23+
24+
android_library(
25+
name = "app-code",
26+
srcs = glob([
27+
"src/main/java/**/*.java",
28+
]),
29+
deps = [
30+
":all-libs",
31+
":build_config",
32+
":res",
33+
],
34+
)
35+
36+
android_build_config(
37+
name = "build_config",
38+
package = "com.rn64",
39+
)
40+
41+
android_resource(
42+
name = "res",
43+
package = "com.rn64",
44+
res = "src/main/res",
45+
)
46+
47+
android_binary(
48+
name = "app",
49+
keystore = "//android/keystores:debug",
50+
manifest = "src/main/AndroidManifest.xml",
51+
package_type = "debug",
52+
deps = [
53+
":app-code",
54+
],
55+
)

0 commit comments

Comments
 (0)