Two test gaps: unverified prebuild `Info.plist` and a missing `.node` fixture in the Babel plugin tests
Nobody has claimed this yet.
Assessment
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Newbie friendliness
- 15/100
- Issue type
- Bug
- Clarity
- Clearly specified
- Activity status
- Stale
- Tech stack
- javascript, node.js, typescript
- Domain
- build-system, testing
Research direction
Start with the TODO-marked tests and packages/host/src/node/prebuilds/apple.ts, including writeFrameworkInfoPlist, then run the relevant unit tests. Done means the prebuild test verifies the generated Info.plist values and the Babel plugin fixture includes both my-addon.js and my-addon.node while preserving the intended resolution. PR #426 already covers this work.
Written by the indexing model from the issue text.
Description
Two TODOs marking tests that assert less than they appear to.
verify-prebuilds skips the Info.plist it just found
The verifier walks each framework in the XCFramework and `continue`s past `Info.plist` without reading it. That file is written by `writeFrameworkInfoPlist` in `packages/host/src/node/prebuilds/apple.ts` from the library name and bundle identifier, and a wrong `CFBundleExecutable` or `CFBundleIdentifier` is exactly the kind of failure that passes every build step and then fails at load time on device. Parsing it and asserting the executable name matches the library, and the identifier matches what was requested, is a handful of lines given `@expo/plist` is already a dependency.
## "does not touch required JS files" doesn't prove what it claims
The test fixture has my-addon.js and asserts the plugin does not emit requireNodeAddon. But with no my-addon.node in the fixture there is nothing for the plugin to have found in the first place — the assertion passes for the wrong reason, and would keep passing even if the plugin's precedence between a .js and a sibling addon were broken. Adding a ./my-addon.node alongside it, as the TODO says, is what makes the test meaningful: with both present, require('./my-addon') must still resolve to the JS file.
Current status (as of 2026-09-14)
Both gaps above are fixed by #426, the only open PR against this issue. It's mergeable (clean), has two maintainer approvals, and CI is fully green (Lint + Unit tests on ubuntu/macos/windows; native app/device jobs skipped, which is expected for a fork PR without runner secrets/labels). Nothing further is needed here besides merging it — no competing implementation work is warranted.
Earlier independent attempts (#448, #449, #450, #455) were closed in favor of #426 once it became clear it already covered the same fixes (the shared isNodeApiModule .js/.node precedence bug, plus zod-validated Info.plist verification).
- Dominant language
- TypeScript
- Stars
- 188
- Forks
- 10
- Avg merge
- 2d 17h
- Merged PRs (30d)
- 3
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from callstackincubator/react-native-node-api
-
Android 🤖
Difficulty 2/5 1-3 hours Newbie friendliness 66/100
-
Sanity check of Hermes source directory via environment variable, when building Android projects OpenAndroid 🤖 good first issue
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
callstackincubator/react-native-node-api#163 · 1 comment ·
-
enhancement good first issue gyp-to-cmake
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
callstackincubator/react-native-node-api#161 · 3 comments · 1 reaction ·
-
enhancement Host 🏡
Difficulty 5/5 Over a week Newbie friendliness 25/100
-
gyp-to-cmake
Difficulty 4/5 3-5 days Newbie friendliness 55/100
callstackincubator/react-native-node-api#423 · 1 comment ·
All issues in callstackincubator/react-native-node-api
Similar issues
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
linagora/twake-calendar-frontend#1377 · 1 comment ·
-
Difficulty 1/5 Under an hour Newbie friendliness 72/100
EclipseFdn/open-vsx.org#13385 · 1 comment ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
MystenLabs/MemWal#979 · 1 comment ·
-
front-end UI/UX
Difficulty 1/5 Under an hour Newbie friendliness 75/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 65/100