Skip to content

Commit 8831258

Browse files
committed
something is up with tests.. need to figure this out later
1 parent e2d9e73 commit 8831258

File tree

4 files changed

+96
-32
lines changed

4 files changed

+96
-32
lines changed

bun.lock

Lines changed: 11 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -5,19 +5,19 @@
55
"name": "@react-native-community/hooks",
66
"devDependencies": {
77
"@changesets/cli": "^2.28.1",
8-
"@testing-library/react-hooks": "8.0.1",
9-
"@testing-library/react-native": "13.0.1",
10-
"@types/jest": "29.5.14",
8+
"@jest/globals": "^29.7.0",
9+
"@testing-library/react-hooks": "^8.0.1",
10+
"@testing-library/react-native": "^13.0.1",
11+
"@types/jest": "^29.5.14",
1112
"@types/react": "18.3.18",
12-
"@types/react-native": "0.73.0",
1313
"eslint": "9.20.1",
1414
"eslint-plugin-prettier": "^5.2.3",
15-
"jest": "29.7.0",
15+
"jest": "^29.7.0",
1616
"prettier": "3.5.1",
1717
"react": "18.3.1",
1818
"react-native": "0.78.0",
19-
"react-test-renderer": "18.3.1",
20-
"ts-jest": "29.2.5",
19+
"react-test-renderer": "^19.0.0",
20+
"ts-jest": "^29.2.5",
2121
"typescript": "5.7.3",
2222
"typescript-eslint": "^8.24.1",
2323
},
@@ -462,8 +462,6 @@
462462

463463
"@types/react": ["@types/[email protected]", "", { "dependencies": { "@types/prop-types": "*", "csstype": "^3.0.2" } }, "sha512-t4yC+vtgnkYjNSKlFx1jkAhH8LgTo2N/7Qvi83kdEaUtMDiwpbLAktKDaAMlRcJ5eSxZkH74eEGt1ky31d7kfQ=="],
464464

465-
"@types/react-native": ["@types/[email protected]", "", { "dependencies": { "react-native": "*" } }, "sha512-6ZRPQrYM72qYKGWidEttRe6M5DZBEV5F+MHMHqd4TTYx0tfkcdrUFGdef6CCxY0jXU7wldvd/zA/b0A/kTeJmA=="],
466-
467465
"@types/stack-utils": ["@types/[email protected]", "", {}, "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw=="],
468466

469467
"@types/yargs": ["@types/[email protected]", "", { "dependencies": { "@types/yargs-parser": "*" } }, "sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA=="],
@@ -1036,8 +1034,6 @@
10361034

10371035
"ob1": ["[email protected]", "", { "dependencies": { "flow-enums-runtime": "^0.0.6" } }, "sha512-1PEbvI+AFvOcgdNcO79FtDI1TUO8S3lhiKOyAiyWQF3sFDDKS+aw2/BZvGlArFnSmqckwOOB9chQuIX0/OahoQ=="],
10381036

1039-
"object-assign": ["[email protected]", "", {}, "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg=="],
1040-
10411037
"on-finished": ["[email protected]", "", { "dependencies": { "ee-first": "1.1.1" } }, "sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww=="],
10421038

10431039
"once": ["[email protected]", "", { "dependencies": { "wrappy": "1" } }, "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w=="],
@@ -1118,15 +1114,13 @@
11181114

11191115
"react-error-boundary": ["[email protected]", "", { "dependencies": { "@babel/runtime": "^7.12.5" }, "peerDependencies": { "react": ">=16.13.1" } }, "sha512-uM9uPzZJTF6wRQORmSrvOIgt4lJ9MC1sNgEOj2XGsDTRE4kmpWxg7ENK9EWNKJRMAOY9z0MuF4yIfl6gp4sotA=="],
11201116

1121-
"react-is": ["react-is@18.3.1", "", {}, "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg=="],
1117+
"react-is": ["react-is@19.0.0", "", {}, "sha512-H91OHcwjZsbq3ClIDHMzBShc1rotbfACdWENsmEf0IFvZ3FgGPtdHMcsv45bQ1hAbgdfiA8SnxTKfDS+x/8m2g=="],
11221118

11231119
"react-native": ["[email protected]", "", { "dependencies": { "@jest/create-cache-key-function": "^29.6.3", "@react-native/assets-registry": "0.78.0", "@react-native/codegen": "0.78.0", "@react-native/community-cli-plugin": "0.78.0", "@react-native/gradle-plugin": "0.78.0", "@react-native/js-polyfills": "0.78.0", "@react-native/normalize-colors": "0.78.0", "@react-native/virtualized-lists": "0.78.0", "abort-controller": "^3.0.0", "anser": "^1.4.9", "ansi-regex": "^5.0.0", "babel-jest": "^29.7.0", "babel-plugin-syntax-hermes-parser": "0.25.1", "base64-js": "^1.5.1", "chalk": "^4.0.0", "commander": "^12.0.0", "event-target-shim": "^5.0.1", "flow-enums-runtime": "^0.0.6", "glob": "^7.1.1", "invariant": "^2.2.4", "jest-environment-node": "^29.6.3", "memoize-one": "^5.0.0", "metro-runtime": "^0.81.0", "metro-source-map": "^0.81.0", "nullthrows": "^1.1.1", "pretty-format": "^29.7.0", "promise": "^8.3.0", "react-devtools-core": "^6.0.1", "react-refresh": "^0.14.0", "regenerator-runtime": "^0.13.2", "scheduler": "0.25.0", "semver": "^7.1.3", "stacktrace-parser": "^0.1.10", "whatwg-fetch": "^3.0.0", "ws": "^6.2.3", "yargs": "^17.6.2" }, "peerDependencies": { "@types/react": "^19.0.0", "react": "^19.0.0" }, "optionalPeers": ["@types/react"], "bin": { "react-native": "cli.js" } }, "sha512-3PO4tNvCN6BdAKcoY70v1sLfxYCmDR4KS1VTY+kIBKy5Qznp27QNxL7zBQjvS6Jp91gc8N82QbysQrfBlwg9gQ=="],
11241120

11251121
"react-refresh": ["[email protected]", "", {}, "sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA=="],
11261122

1127-
"react-shallow-renderer": ["[email protected]", "", { "dependencies": { "object-assign": "^4.1.1", "react-is": "^16.12.0 || ^17.0.0 || ^18.0.0" }, "peerDependencies": { "react": "^16.0.0 || ^17.0.0 || ^18.0.0" } }, "sha512-oScf2FqQ9LFVQgA73vr86xl2NaOIX73rh+YFqcOp68CWj56tSfgtGKrEbyhCj0rSijyG9M1CYprTh39fBi5hzA=="],
1128-
1129-
"react-test-renderer": ["[email protected]", "", { "dependencies": { "react-is": "^18.3.1", "react-shallow-renderer": "^16.15.0", "scheduler": "^0.23.2" }, "peerDependencies": { "react": "^18.3.1" } }, "sha512-KkAgygexHUkQqtvvx/otwxtuFu5cVjfzTCtjXLH9boS19/Nbtg84zS7wIQn39G8IlrhThBpQsMKkq5ZHZIYFXA=="],
1123+
"react-test-renderer": ["[email protected]", "", { "dependencies": { "react-is": "^19.0.0", "scheduler": "^0.25.0" }, "peerDependencies": { "react": "^19.0.0" } }, "sha512-oX5u9rOQlHzqrE/64CNr0HB0uWxkCQmZNSfozlYvwE71TLVgeZxVf0IjouGEr1v7r1kcDifdAJBeOhdhxsG/DA=="],
11301124

11311125
"read-yaml-file": ["[email protected]", "", { "dependencies": { "graceful-fs": "^4.1.5", "js-yaml": "^3.6.1", "pify": "^4.0.1", "strip-bom": "^3.0.0" } }, "sha512-VIMnQi/Z4HT2Fxuwg5KrY174U1VdUIASQVWXXyqtNRtxSr9IYkn1rsI6Tb6HsrHCmB7gVpNwX6JxPTHcH6IoTA=="],
11321126

@@ -1452,9 +1446,9 @@
14521446

14531447
"pretty-format/ansi-styles": ["[email protected]", "", {}, "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA=="],
14541448

1455-
"react-devtools-core/ws": ["[email protected]", "", { "peerDependencies": { "bufferutil": "^4.0.1", "utf-8-validate": "^5.0.2" }, "optionalPeers": ["bufferutil", "utf-8-validate"] }, "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ=="],
1449+
"pretty-format/react-is": ["[email protected]", "", {}, "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg=="],
14561450

1457-
"react-test-renderer/scheduler": ["[email protected]", "", { "dependencies": { "loose-envify": "^1.1.0" } }, "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ=="],
1451+
"react-devtools-core/ws": ["[email protected]", "", { "peerDependencies": { "bufferutil": "^4.0.1", "utf-8-validate": "^5.0.2" }, "optionalPeers": ["bufferutil", "utf-8-validate"] }, "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ=="],
14581452

14591453
"read-yaml-file/js-yaml": ["[email protected]", "", { "dependencies": { "argparse": "^1.0.7", "esprima": "^4.0.0" }, "bin": { "js-yaml": "bin/js-yaml.js" } }, "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g=="],
14601454

jest.config.js

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,16 @@
11
module.exports = {
2-
testEnvironment: 'node',
3-
preset: 'react-native',
4-
transform: {
5-
'^.+\\.jsx$': 'babel-jest',
6-
'^.+\\.tsx?$': 'ts-jest',
7-
},
8-
moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx', 'json', 'node'],
9-
testPathIgnorePatterns: ['node_modules', 'lib'],
2+
preset: "react-native",
3+
testEnvironment: "node",
4+
transform: {
5+
"^.+\\.jsx?$": "babel-jest",
6+
"^.+\\.tsx?$": [
7+
"ts-jest",
8+
{
9+
tsconfig: "tsconfig.json",
10+
},
11+
],
12+
},
13+
moduleFileExtensions: ["ts", "tsx", "js", "jsx", "json", "node"],
14+
testPathIgnorePatterns: ["node_modules", "lib"],
15+
setupFiles: ["./jest.setup.js"],
1016
}

jest.setup.js

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
import { jest } from "@jest/globals"
2+
3+
jest.mock("react-native/Libraries/Utilities/Platform", () => ({
4+
select: jest.fn((platform) => platform.default),
5+
}))
6+
7+
jest.mock("react-native", () => {
8+
const RN = jest.requireActual("react-native/Libraries/ReactNative/oss/ReactNativeRenderer-prod")
9+
10+
return {
11+
Platform: {
12+
select: jest.fn((platform) => platform.default),
13+
},
14+
Dimensions: {
15+
get: jest.fn().mockReturnValue({ width: 375, height: 812 }),
16+
addEventListener: jest.fn(),
17+
},
18+
useWindowDimensions: jest.fn().mockReturnValue({ width: 375, height: 812 }),
19+
AppState: {
20+
currentState: "active",
21+
addEventListener: jest.fn(() => ({
22+
remove: jest.fn(),
23+
})),
24+
},
25+
BackHandler: {
26+
addEventListener: jest.fn(() => ({
27+
remove: jest.fn(),
28+
})),
29+
},
30+
Keyboard: {
31+
addListener: jest.fn(() => ({
32+
remove: jest.fn(),
33+
})),
34+
emit: jest.fn(),
35+
},
36+
AccessibilityInfo: {
37+
addEventListener: jest.fn(() => ({
38+
remove: jest.fn(),
39+
})),
40+
removeEventListener: jest.fn(),
41+
setAccessibilityFocus: jest.fn(),
42+
announceForAccessibility: jest.fn(),
43+
isBoldTextEnabled: jest.fn().mockResolvedValue(false),
44+
isScreenReaderEnabled: jest.fn().mockResolvedValue(false),
45+
isGrayscaleEnabled: jest.fn().mockResolvedValue(false),
46+
isInvertColorsEnabled: jest.fn().mockResolvedValue(false),
47+
isReduceMotionEnabled: jest.fn().mockResolvedValue(false),
48+
isReduceTransparencyEnabled: jest.fn().mockResolvedValue(false),
49+
},
50+
InteractionManager: {
51+
runAfterInteractions: jest.fn(() => ({
52+
cancel: jest.fn(),
53+
})),
54+
},
55+
Image: {
56+
getSize: jest.fn(),
57+
getSizeWithHeaders: jest.fn(),
58+
resolveAssetSource: jest.fn().mockReturnValue({ width: 100, height: 100 }),
59+
},
60+
}
61+
})
62+
63+
global.window = {}
64+
global.window.addEventListener = () => {}

package.json

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -22,19 +22,19 @@
2222
},
2323
"devDependencies": {
2424
"@changesets/cli": "^2.28.1",
25-
"@testing-library/react-hooks": "8.0.1",
26-
"@testing-library/react-native": "13.0.1",
27-
"@types/jest": "29.5.14",
25+
"@jest/globals": "^29.7.0",
26+
"@testing-library/react-hooks": "^8.0.1",
27+
"@testing-library/react-native": "^13.0.1",
28+
"@types/jest": "^29.5.14",
2829
"@types/react": "18.3.18",
29-
"@types/react-native": "0.73.0",
3030
"eslint": "9.20.1",
3131
"eslint-plugin-prettier": "^5.2.3",
32-
"jest": "29.7.0",
32+
"jest": "^29.7.0",
3333
"prettier": "3.5.1",
3434
"react": "18.3.1",
3535
"react-native": "0.78.0",
36-
"react-test-renderer": "18.3.1",
37-
"ts-jest": "29.2.5",
36+
"react-test-renderer": "^19.0.0",
37+
"ts-jest": "^29.2.5",
3838
"typescript": "5.7.3",
3939
"typescript-eslint": "^8.24.1"
4040
},

0 commit comments

Comments
 (0)