You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: content/intro-to-storybook/react/fr/screen.md
+121-103
Original file line number
Diff line number
Diff line change
@@ -113,12 +113,15 @@ const store = configureStore({
113
113
exportdefaultstore;
114
114
```
115
115
116
-
Maintenant que nous avons mis à jour notre store pour récupérer les données de l'API et que nous gérons les différents états de notre application, nous pouvons créer `InboxScreen.js` dans le dossier `src/components`:
116
+
Maintenant que nous avons mis à jour notre store pour récupérer les données de l'API et que nous gérons les différents états de notre application, nous pouvons créer `InboxScreen.jsx` dans le dossier `src/components`:
@@ -154,32 +157,42 @@ export default function InboxScreen() {
154
157
155
158
Nous avons aussi besoin de changer le composant `App` pour rendre le `InboxScreen` (nous utiliserons à la fin un routeur pour choisir le bon écran, mais ne nous inquiétons pas de cela ici):
- Edit <code>src/App.js</code> and save to reload.
190
+
- Edit <code>src/App.jsx</code> and save to test HMR
173
191
-</p>
174
-
-<a
175
-
- className="App-link"
176
-
- href="https://reactjs.org"
177
-
- target="_blank"
178
-
- rel="noopener noreferrer"
179
-
->
180
-
- Learn React
181
-
-</a>
182
-
-</header>
192
+
-</div>
193
+
-<p className="read-the-docs">
194
+
- Click on the Vite and React logos to learn more
195
+
-</p>
183
196
-</div>
184
197
+<Provider store={store}>
185
198
+<InboxScreen />
@@ -191,11 +204,9 @@ export default App;
191
204
192
205
Cependant, c'est dans le rendu de la story dans Storybook que les choses deviennent intéressantes.
193
206
194
-
Comme nous l'avons vu précédemment, le composant `TaskList` est un composant **connecté** et se fonde sur le store Redux pour rendre ses tâches. Comme `InboxScreen` est aussi un composant connecté, nous allons faire un travail similaire et fournir un store à la story. Voici comment rendre les stories dans `InboxScreen.stories.js`:
195
-
196
-
```js:title=src/components/InboxScreen.stories.js
197
-
importReactfrom'react';
207
+
Comme nous l'avons vu précédemment, le composant `TaskList` est un composant **connecté** et se fonde sur le store Redux pour rendre ses tâches. Comme `InboxScreen` est aussi un composant connecté, nous allons faire un travail similaire et fournir un store à la story. Voici comment rendre les stories dans `InboxScreen.stories.jsx`:
Nous pouvons constater une erreur dans la story de `error`. Au lieu d'afficher le bon état, il montre une liste de tâches. Une manière de corriger ce problème est de fournir une version simulée (qu'on appelle un "mock") de chaque étape, comme nous avons fait dans le chapitre précédent. Ici, pour nous aider à corriger cette erreur, nous allons utiliser une librairie de simulation d'API bien connue, grâce à un addon de Storybook.
@@ -234,85 +245,87 @@ Ensuite, nous devons mettre à jour `.storybook/preview.js` et les initialiser:
//👇 Configures Storybook to log the actions( onArchiveTask and onPinTask ) in the UI.
247
-
exportconstparameters= {
248
-
actions: { argTypesRegex:'^on[A-Z].*' },
249
-
controls: {
250
-
matchers: {
251
-
color:/(background|color)$/i,
252
-
date:/Date$/,
255
+
/**@type{ import('@storybook/react').Preview }*/
256
+
constpreview= {
257
+
parameters: {
258
+
controls: {
259
+
matchers: {
260
+
color:/(background|color)$/i,
261
+
date:/Date$/,
262
+
},
253
263
},
254
264
},
265
+
+ loaders: [mswLoader],
255
266
};
267
+
268
+
exportdefaultpreview;
256
269
```
257
270
258
271
Enfin, mettez à jour les stories de `InboxScreen` en incluant un [paramètre](https://storybook.js.org/docs/react/writing-stories/parameters) qui simule les appels à l'API:
💡 En complément, une autre approche valable serait de passer la donnée à travers la hiérarchie des composants, d'autant plus si vous utilisez <ahref="http://graphql.org/">GraphQL</a>. C'est comment nous avons construit <ahref="https://www.chromatic.com/?utm_source=storybook_website&utm_medium=link&utm_campaign=storybook">Chromatic</a> à travers plus de 800 stories.
319
+
320
+
💡 En complément, une autre approche valable serait de passer la donnée à travers la hiérarchie des composants, d'autant plus si vous utilisez [GraphQL](http://graphql.org/). C'est comment nous avons construit [Chromatic](https://www.chromatic.com/?utm_source=storybook_website&utm_medium=link&utm_campaign=storybook) à travers plus de 800 stories.
308
321
309
322
</div>
310
323
311
324
Regardez votre Storybook, et vous verrez que la story `error` fonctionne dorénavant comme prévue. MSW a intercepté notre appel à l'API et a fourni la réponse adéquate.
💡 Le package `@storybook/test` remplace les packages de test `@storybook/jest` et `@storybook/testing-library`, offrant une taille de bundle plus petite et une API plus simple basée sur le package [Vitest](https://vitest.dev/).
416
+
417
+
</div>
418
+
403
419
Regardez la story `Default` . Cliquer sur le section `Interactions` pour voir la liste des interactions de votre fonction play de votre story.
💡 Les tests d'interactions avec la fonction play sont une manière fantastique de tester vos composants d'UI. Ils peuvent faire plein plus que ce que nous avons parcouru. Nous vous encourageons à lire la <ahref="https://storybook.js.org/docs/react/writing-tests/interaction-testing">documentation officielle</a> pour apprendre plus à ce sujet.
444
-
<br />
445
-
Pour creuser encore plus les tests, vous pouvez lire <ahref="/ui-testing-handbook">Le livre du test</a>. Il agrège les stratégies de tests utilisées par les équipes front reconnues afin de vous faire accélérer votre flux de développement.
459
+
460
+
💡 Les tests d'interactions avec la fonction play sont une manière fantastique de tester vos composants d'UI. Ils peuvent faire plein plus que ce que nous avons parcouru. Nous vous encourageons à lire la [documentation officielle](https://storybook.js.org/docs/writing-tests/component-testing) pour en savoir plus.
461
+
462
+
Pour creuser encore plus les tests, vous pouvez lire le [Guide des Tests](/ui-testing-handbook). Il agrège les stratégies de tests utilisées par les équipes front reconnues afin de vous faire accélérer votre flux de développement.
463
+
446
464
</div>
447
465
448
466

@@ -465,5 +483,5 @@ Nous avons commencé du bas avec une `Task`, puis progressé avec `TaskList`, et
465
483
Nous n'avons pas encore terminé - le travail ne s'arrête pas à la construction de l'UI. Nous devons également veiller à ce qu'elle reste durable dans le temps.
466
484
467
485
<divclass="aside">
468
-
💡 N'oubliez pas de commiter vos changements avec git!
486
+
💡 N'oubliez pas de commiter vos changements avec git!
0 commit comments