Support for React.cache function
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Accessibilité débutants
- 45/100
- Type d'issue
- Bug
- Clarté
- Plutôt claire
- Activité
- Calme
- Stack technique
- javascript, node.js, react
- Domaine
- frontend, testing-qa
Piste de recherche
Commencez par exécuter la reproduction fournie de testCached.tsx, TestComponent.tsx et TestPage.tsx avec React, Node 20 ou 22, Vitest ou Jest et jsdom. Vérifiez les limites de prise en charge de package.json, puis déterminez si React.cache peut être pris en charge dans cet environnement de test ou si des instructions documentées de mocking sont nécessaires ; le travail est terminé lorsque la reproduction réussit ou que la limitation est clairement documentée.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
@testing-library/reactversion: 16.3.0- Testing Framework and version: Tested in
[email protected]and[email protected] - DOM Environment:
[email protected] - Node 20 or 22
Relevant code or config:
// testCached.tsx
import { cache } from 'react';
export default cache((data: number) => {
return Math.random() * data;
});
----------------------------------------------------------------------
// TestComponent.tsx
import myCachedFunction from "./testCached";
import React from "react";
export const TestComponent = () => {
return (
<div>
<p data-testid="cached-value-component">{myCachedFunction(200)}</p>
</div>
);
};
----------------------------------------------------------------------
// TestPage.tsx
import { TestComponent } from "./TestComponent";
import myCachedFunction from "./testCached";
import React from "react";
export function TestPage() {
return (
<div>
<p data-testid="cached-value-page">{myCachedFunction(200)}</p>
<TestComponent />
</div>
);
}
----------------------------------------------------------------------
// Testfile
it("Should use the cached value", () => {
render(<TestPage />);
expect(screen.getByTestId("cached-value-page").textContent).toEqual(
screen.getByTestId("cached-value-component").textContent
);
});
What you did:
We are using the React.cache function but cannot get it to work in tests.
What happened:
In tests, it does not use the cache but simply returns a new value for each call. When running the above code in nextjs 14 it works as expected and returns the cached value instead of a new value displaying the same value in TestComponent and TestPage.
For example the tests return:
Expected: "158.69893572775896"
Received: "45.853220887195164"
Also worth mentioning i experimented with different solutions, for example some in this issue, but ended up having it mocked.
Reproduction:
Problem description:
Suggested solution:
It should work as expected, or at least mention in docs to mock it
- Langage dominant
- JavaScript
- Étoiles
- 19.7k
- Forks
- 1.2k
- Métriques de merge des PR
- Aucune PR mergée en 30 j
Préparer son environnement
- Aucun Dockerfile ni fichier Docker Compose
- Propose un modèle de pull request
- Lire le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de testing-library/react-testing-library
-
fireEvent.select does not wrap its automatic native focus in actPeut-être pris @sergioperezcheco l’a pris il y a 18 jours. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 88/100
-
bug: calling configure() without reactStrictMode resets it to undefined, silently disabling strict modePeut-être à nouveau libre @suhailopensource l’a pris il y a 89 jours, et aucune pull request n’est ouverte. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 35/100
testing-library/react-testing-library#1466 · 1 commentaire ·
-
Difficulté 4/5 3-5 jours Accessibilité débutants 30/100
testing-library/react-testing-library#1459 · 2 commentaires ·
-
perf: optimize container lookup with early exitPeut-être à nouveau libre @Ch-Abhinav-Chowdary l’a pris il y a 315 jours, et aucune pull request n’est ouverte. Ouverte
Difficulté 1/5 Moins d'une heure Accessibilité débutants 35/100
testing-library/react-testing-library#1430 · 1 commentaire ·
-
`fireEvent.mouseEnter` does not forward `relatedTarget` (relatedTarget is the window instead)Peut-être pris @swarnim02 l’a pris il y a 332 jours. Ouverte
Difficulté 3/5 1-2 jours Accessibilité débutants 55/100
Toutes les issues de testing-library/react-testing-library
Issues similaires
-
Clinic sharing: fast sync refusal message suggests Delete Data, which only developer builds haveOuvertebug
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
avniproject/avni-client#2228 ·
-
bug confirmed issue
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
open-webui/open-webui#33196 · 2 commentaires ·
Les mainteneurs répondent en général sous 1 jour
-
`printf "%o"` prints decimalOuverte
Difficulté 2/5 1-3 heures Accessibilité débutants 76/100
fable-compiler/Fable#5157 ·
Les mainteneurs répondent en général sous 1 jour
-
New tool: PaperBananaPeut-être pris @github-actions l’a pris aujourd’hui. Ouvertesubmission triage
Difficulté 1/5 Moins d'une heure Accessibilité débutants 75/100
kausalflow/tools#243 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
area: apple-music area: build-release bug effort: small priority: high
Difficulté 2/5 1-3 heures Accessibilité débutants 82/100
ChristianTabor/Argon#32 ·
Les mainteneurs répondent en général sous 1 jour