
# Laboratoire de recherche en sécurité autorisé reproduisant CVE-2024-39700 / GHSA-45gq-v5wm-82wg (requête pwn de mise à jour des tests d'intégration de l'extension-template JupyterLab)
Ce dossier contient les tests d'intégration de l'extension.
Ils sont définis à l'aide du moteur de test Playwright et de l'outil d'assistance Galata.
La configuration Playwright est définie dans playwright.config.js.
La configuration du serveur JupyterLab à utiliser pour les tests d'intégration est définie dans jupyter_server_test_config.py.
La configuration par défaut produira une vidéo pour les tests en échec ainsi qu'un rapport HTML.
Il existe un nouveau mode d'interface expérimental que vous pourriez adorer ; voir cette vidéo.
Toutes les commandes sont supposées être exécutées depuis le répertoire racine
Pour exécuter les tests, vous devez :
jlpm install
jlpm build:prod
Vérifiez que l'extension est installée dans JupyterLab.
cd ./ui-tests
jlpm install
jlpm playwright install
cd ..
cd ./ui-tests
jlpm playwright test
Les résultats des tests s'afficheront dans le terminal. En cas d'échec de tests, le rapport de test s'ouvrira dans votre navigateur à la fin de l'exécution des tests ; voir la documentation Playwright pour configurer ce comportement.
Toutes les commandes sont supposées être exécutées depuis le répertoire racine
Si vous comparez des instantanés pour valider vos tests, vous devrez peut-être mettre à jour les instantanés de référence stockés dans le dépôt. Pour ce faire, vous devez :
jlpm install
jlpm build:prod
Vérifiez que l'extension est installée dans JupyterLab.
cd ./ui-tests
jlpm install
jlpm playwright install
cd ..
cd ./ui-tests
jlpm playwright test -u
Des écarts peuvent survenir entre les instantanés générés sur votre ordinateur et ceux générés sur le CI. Pour faciliter la mise à jour des instantanés dans une PR, vous pouvez saisir
please update playwright snapshotspour déclencher la mise à jour par un bot sur le CI. Une fois que le bot a calculé de nouveaux instantanés, il les validera sur la branche de la PR.
Toutes les commandes sont supposées être exécutées depuis le répertoire racine
Pour créer des tests, le moyen le plus simple est d'utiliser l'outil de génération de code de Playwright :
jlpm install
jlpm build:prod
Vérifiez que l'extension est installée dans JupyterLab.
cd ./ui-tests
jlpm install
jlpm playwright install
cd ..
cd ./ui-tests
jlpm start
cd ./ui-tests
jlpm playwright codegen localhost:8888
Toutes les commandes sont supposées être exécutées depuis le répertoire racine
Pour déboguer les tests, un bon moyen est d'utiliser l'outil d'inspection de Playwright :
jlpm install
jlpm build:prod
Vérifiez que l'extension est installée dans JupyterLab.
cd ./ui-tests
jlpm install
jlpm playwright install
cd ..
cd ./ui-tests
jlpm playwright test --debug
Pour mettre à jour les versions des navigateurs web, vous devez mettre à jour le paquet @playwright/test :
cd ./ui-tests
jlpm up "@playwright/test"
jlpm playwright install