Skip to content

fix: #ENABLING-1202 retire la dépendance directe à axios, adopte le bridge http d'entcore-toolkit - #389

Merged
jenkinsEdificePublic merged 3 commits into
devfrom
develop-axios
Oct 1, 2026
Merged

jenkinsEdificePublic merged 3 commits into
devfrom
develop-axios

Conversation

@pascalsaussier-edifice

@pascalsaussier-edifice pascalsaussier-edifice commented Sep 16, 2026 •

Copy link
Copy Markdown
Contributor

Describe your changes

Migre les 4 modules de ce repo (presences, incidents, massmailing, statistics-presences) vers entcore-toolkit@2.0.0-dev.1 : 75 fichiers source migrés (imports/types axios → http/HttpResponse/HttpError/HttpRequestConfig), tous des usages réels (aucun import mort trouvé). axios et axios-mock-adapter retirés du package.json.

Découverte majeure pendant cette migration, systémique sur ~10 autres repos à venir (edt, calendar, vie-scolaire, form, et la moitié des CGI) : 12 fichiers de tests jest mockaient axios directement via axios-mock-adapter. Vérifié empiriquement (AxiosError: Network Error) que ça ne fonctionne plus une fois axios retiré : le bridge http d'entcore-toolkit embarque sa propre instance axios bundlée via esbuild, distincte de celle de l'app — mocker l'axios de l'app n'intercepte jamais les appels du bridge. Corrigé en remplaçant le mock par jest.mock('entcore-toolkit', ...) sur http, avec un petit helper partagé (test-utils/httpMock.ts) pour reconstruire la forme d'une HttpResponse. Les assertions sur l'URL/le corps de requête sont préservées via toHaveBeenCalledWith.

Aucune classe de ce repo n'étend Selection<T>. yarn.lock/package-lock.json sont dans le .gitignore de ce repo (convention existante) — rien à committer sur ce point.

Checklist tests

  • Build réel vérifié : gulp build (4 bundles, aucune erreur) + yarn run build:sass.
  • Suite de tests jest réécrite pour les 12 fichiers concernés : 120 tests, 29 suites, tous verts.
  • Vérification runtime complémentaire faite via Playwright (US3-verification/) : les 4 checks du bridge http passent (GET liste, POST création, erreur 500, upload FormData).

Issue ticket number and link

ENABLING-1202 (US3, épic ENABLING-1199)

Checklist before requesting a review (magic string, indentation, comment/documentation...)

  • I have detailed the tests to do in my feature/fix in order to prevent consequents regressions (must specify in Checklist tests)
  • I have performed a self-review of my code
  • I have commented my code, particularly in hard-to-understand areas
  • I have made corresponding changes to the documentation (API Doc etc...) - (must specify in Description for target version)
  • If it is a consequent feature, I have added thorough tests.
  • I have added tests that prove my fix is effective or that my feature works
  • Any dependent changes have been added to this project (must specify in Description)

🤖 Generated with Claude Code

@damienromito damienromito left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

testé en local sans soucis

jenkinsEdificePublic and others added 3 commits October 1, 2026 18:16
…ridge http d'entcore-toolkit

Migre les 4 modules de ce repo (presences, incidents, massmailing,
statistics-presences) vers entcore-toolkit@2.0.0-dev.1 : 75 fichiers
source migrés (imports/types axios -> http/HttpResponse/HttpError/
HttpRequestConfig), tous des usages réels (aucun import mort trouvé
cette fois) ; axios et axios-mock-adapter retirés du package.json.

Découverte majeure en cours de migration, systémique sur ~10 autres
repos à venir (edt, calendar, vie-scolaire, form, et la moitié des
CGI) : 12 fichiers de tests jest mockaient axios directement
(axios-mock-adapter). Vérifié empiriquement (AxiosError: Network
Error) que ça ne fonctionne plus une fois axios retiré : le bridge
`http` d'entcore-toolkit embarque sa propre instance axios bundlée
via esbuild, distincte de celle de l'app - mocker l'axios de l'app
n'intercepte jamais les appels du bridge. Corrigé en remplaçant le
mock par `jest.mock('entcore-toolkit', ...)` sur `http` (get/post/
put/delete/postFile/putFile en jest.fn()), avec un petit helper
partagé (test-utils/httpMock.ts, alias @Test-Utils) pour reconstruire
la forme d'une HttpResponse. Les assertions sur l'URL/le corps de
requête sont préservées via toHaveBeenCalledWith (équivalent du
matching d'URL de mock-adapter). 120 tests, 29 suites, tous verts.

Aucune classe de ce repo n'étend Selection<T> - non concerné par le
fix Selection.all/TS2610.

yarn.lock et package-lock.json sont dans le .gitignore de ce repo
(convention existante, pas de lockfile committé) - rien à committer
sur ce point.

Build réel vérifié : `gulp build` (4 bundles, aucune erreur) +
`yarn run build:sass`. Vérification runtime complémentaire faite via
US3-verification/ (Playwright) : les 4 checks du bridge http passent
(GET liste, POST création, erreur 500, upload FormData).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@jenkinsEdificePublic
jenkinsEdificePublic merged commit ef9289c into dev Oct 1, 2026
1 of 2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants