react / react/react-native

serveStaticJson and serveStaticText failing default CORS tests in dev-middleware

Open
#54,523 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Needs: Triage :mag:
Dominant language
C++
Stars
127k
Forks
25.3k
Avg merge
1d 23h
Merged PRs (30d)
4

Description

Description

During the development of the dev-middleware package, the automated tests for serveStaticJson and serveStaticText fail because they expect default Access-Control-Allow-Origin headers in the response. The current implementation no longer includes these headers by default.

This causes test failures even though the main functionality of serving JSON or text works correctly.

Steps to reproduce
  1. Clone the repository.

2 . Run: yarn jest packages/dev-middleware/src/tests/ServerUtils-test.js --runInBand --verbose

  1. Observe that the tests for serveStaticJson and serveStaticText fail due to missing CORS headers.

Expected behavior:
Tests should pass or be updated to reflect the current implementation.

Actual behavior:
Tests fail because the response does not include "Access-Control-Allow-Origin": "*" as previously expected.

React Native Version

0.82.1

Affected Platforms

Build - MacOS

Output of npx @react-native-community/cli info
System:
  OS: macOS 14.1.1
  CPU: (10) arm64 Apple M1 Max
  Memory: 417.81 MB / 64.00 GB
  Shell: 5.9 - /bin/zsh
Binaries:
  Node: 22.14.0
  Yarn: 1.22.22
  npm: 10.9.4
SDKs:
  iOS SDK: 17A400
  Android SDK: 33
npmPackages:
  react: 19.1.1
  react-native: 0.82.1
Stacktrace or Logs
FAIL  packages/dev-middleware/src/__tests__/ServerUtils-test.js
  ServerUtils
    ✕ serveStaticJson sets CORS header (285 ms)
    ✕ serveStaticText sets CORS header
    ✓ baseUrlForServer returns correct URL (1 ms)

  ● ServerUtils › serveStaticJson sets CORS header
    expect(jest.fn()).toHaveBeenCalledWith(...expected)
    Expected: 200, ObjectContaining {"Access-Control-Allow-Origin": "*", "Content-Type": "application/json"}
    Received: 200, {"Content-Type": "application/json"}

  ● ServerUtils › serveStaticText sets CORS header
    expect(jest.fn()).toHaveBeenCalledWith(...expected)
    Expected: 200, ObjectContaining {"Access-Control-Allow-Origin": "*", "Content-Type": "text/plain"}
    Received: 200, {"Content-Type": "text/plain"}
MANDATORY Reproducer

https://github.com/THE-Amrit-mahto-05/react-native-dev-middleware-repo.git

Screenshots and Videos

https://github.com/user-attachments/assets/bbec821b-f0a8-42a3-be58-a17fdceabf08

Contributor guide

Open the contributing guide

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.

Research direction

Start with packages/dev-middleware/src/tests/ServerUtils-test.js and run the reported Yarn Jest command. Inspect serveStaticJson and serveStaticText to determine whether the missing CORS header reflects the intended contract; completion means the tests and implementation agree and the targeted test file passes.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript, react-native
Domain
devtools, testing-qa
Issue type
Bug
Difficulty
2/5
Estimated time
1-3 hours
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
58/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.