Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

Android e2e: ten image checks pass without comparing, and NativeBuffer.spec rewrites a tracked snapshot

Open
#4,135 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
3/5
Estimated time
1-2 days
Newbie friendliness
74/100
Issue type
Bug
Clarity
Clearly specified
Activity status
Active
Tech stack
android, react-native, typescript
Domain
mobile, testing

Research direction

Start with packages/skia/src/__tests__/setup.ts to understand how checkImage handles missing references, then inspect the listed Android e2e specs and packages/skia/src/renderer/__tests__/e2e/NativeBuffer.spec.tsx. Run the reproduction command on Android and check git status; done means checks compare with stored references or fail when references are missing, and the run leaves the working tree unchanged.

Written by the indexing model from the issue text.

Description

Description

On Android, ten e2e image checks have no reference image in the repository, so on a fresh checkout checkImage writes the image it received and returns 0: the check passes without comparing anything.

spec references it writes on Android
Snapshot screens/snapshot6-android-ci.png, screens/snapshot7-android-ci.png (-android.png without CI)
ParagraphGlyphs paragraph/paragraph-glyph-tight-bounds-android.png, paragraph-metrics-bounds-android.png, paragraph-path-segment-android.png
ParagraphHeights paragraph/paragraph-glyph-bounding-boxes-android.png
Text text/path-from-text-android.png, path-from-arabic-text-android.png
TextPath text/text-path-arabic-android.png, text-path-arabic-component-android.png

NativeBuffer.spec.tsx calls checkImage(image, "snapshots/platform-buffer.png", { overwrite: true }), so it never compares either, and every run rewrites the tracked snapshots/platform-buffer.png.

Expected: each check compares against a stored Android reference, or fails when there is none, and a run leaves the working tree unchanged.

React Native Skia Version

3.0.3 (main at 5606b4155)

React Native Version

0.83.1 (the example app)

Using New Architecture
  • Enabled
Steps to Reproduce
  1. Bundle the example with CI=true so it opens the Tests screen, build it, install and launch it on an Android device, and run adb reverse tcp:4242 tcp:4242.
  2. From packages/skia: E2E=true CI=true yarn test -i "e2e/(Snapshot|ParagraphGlyphs|ParagraphHeights|Text|TextPath|NativeBuffer)\.spec".
  3. git status lists the ten references above as new files and snapshots/platform-buffer.png as modified, and none of the checks that wrote them failed.

On a phone Snapshot 1–3 also fail, against -android-ci references that come from the CI emulator; that part is expected.

Snack, Code Example, Screenshot, or Link to Repository
Dominant language
TypeScript
Stars
8.6k
Forks
653
PR merge metrics
No merged PRs in 30d

Getting set up

This project ships no dev container, Dockerfile or contributing guide, so setting up is up to you: start from its README, and see our first-contribution guide for the general steps.

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from Shopify/react-native-skia

All issues in Shopify/react-native-skia

Similar issues

More TypeScript issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.