-
Notifications
You must be signed in to change notification settings - Fork 56
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[TECH] Montée de version des dépendances de Pix API #1433
Conversation
I'm deploying this PR to these urls:
Please check it out! |
.../integration/application/organization-invitations/organization-invitation-controller_test.js
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
OK a part le nom du test. Ca fait beaucoup de MAJ en tout cas!
40b71dd
to
1d115ff
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good to know -> knexjs
n'utilise désormais plus les promesses Bluebird 👀
Ca va modifier l'erreur Sentry sur Knex. |
1d115ff
to
fa5d660
Compare
// when | ||
const response = await server.inject(options); | ||
|
||
// then | ||
expect(response.statusCode).to.equal(200); | ||
expect(response.statusCode).to.equal(204); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Mais euh… ? Il y a un corps de réponse à POST /api/token
, c'est faux de renvoyer 204 ? 🤯
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Bien vu. J'ai un peu corrigé les tests pour qu'ils correspondent mieux à la réalité, mais je pense qu'il faudrait aller beaucoup plus loin , quite à revoir les tests de POST /api/token
complètement, les centraliser, uniformiser et surtout renforcer.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ben déjà les tests qui regarde le statusCode
mais pas le contenu qui va avec je les trouve pénibles à comprendre. En l'occurrence il semblerait que le code renvoyait une réponse vide (ce qui déclenchait un 204
dans le nouvel Hapi) mais je ne comprends pas pourquoi 🤯
Le lien est cassé. Est-ce que tu fais référence à ce changement : hapijs/hapi#3919 ? Si oui je m'attendrais à ce que cette ligne, ajoutée pour obtenir le comportement qui est maintenant par défaut, soit enlevée du coup : Line 22 in df1d922
Le fait que des tests soient cassés par ce changement semble indiquer qu'ils n'utilisent pas la même configuration Hapi que le serveur de production… |
This hapi version contains breaking changes, cf. https://hapi.dev/resources/changelog. We are impacted by 2 of them that will be fixed in next commits : - default empty reponse status code is now 204 (instead of 200) - enforce media type checking
… reponse See hapijs/hapi#4017 section "Change default empty status code to 204"
See hapijs/hapi#4017 section "Change route options.payload.multipart to false by default"
Concerned dependencies: - sentry - swagger
The endpoint `POST /api/token` must not return a 204 HTTP status code. Concerned tests (integ + accept) are weak, messy over-complicated or the three in the same time.
There is no problem with the new knex version, but it is better to upgrade `knex` with `bookshelf` (see PR #1434)
c30e129
to
fe0bac3
Compare
🦄 Problème
Il y a longtemps que nous n'avons pas fait une passe pour monter de version les dépendances du projet Pix API.
Il est important de mettre à jour régulièrement les dépendances pour les raisons courantes suivantes :
Les risques (qui sont le pendant des gains ci-dessus) :
🤖 Solution
Toutes les dépendances de Pix API ont été montées (patch, minor ou major) sauf celles trop problématiques :
bookshelf
:pg
:ssl
qui est variabilisée viaDATABASE_SSL_ENABLED
sauf que l'ancienne option était un booléen quand maintenant il faut faut passer un objet JSON~1.0.x
plutôt que^1.y.z
)🌈 Remarques
J'ai monté chaque lib une-à-une, en jouant bien tous les tests d'API à chaque fois, et en relançant l'application from scratch (avec suppression des conteneurs Docker-Compose) pour certaines libs que j'ai estimées plus sensibles :
J'ai vérifié qu'il n'y avait pas plus de messages de warning côté console navigateur pour les apps Ember.
J'ai aussi vérifié la connexion tout ça.
Pour la montée de hapi, j'ai rencontré les points suivants :
200
mais204
💯 Pour tester
Pas le choix. Il faut faire une repasse globale.