
Laboratorio di ricerca sulla sicurezza autorizzato che riproduce CVE-2024-39700 / GHSA-45gq-v5wm-82wg (richiesta pwn di update-integration-tests del modello di estensione JupyterLab)
Questa cartella contiene i test di integrazione dell'estensione.
Sono definiti utilizzando il runner di test Playwright e l'helper Galata.
La configurazione di Playwright è definita in playwright.config.js.
La configurazione del server JupyterLab da utilizzare per i test di integrazione è definita in jupyter_server_test_config.py.
La configurazione predefinita produrrà un video per i test falliti e un report HTML.
Esiste una nuova modalità UI sperimentale che potrebbe conquistarti; guarda questo video.
Si presuppone che tutti i comandi vengano eseguiti dalla directory principale
Per eseguire i test, devi:
jlpm install
jlpm build:prod
Verifica che l'estensione sia installata in JupyterLab.
cd ./ui-tests
jlpm install
jlpm playwright install
cd ..
cd ./ui-tests
jlpm playwright test
I risultati dei test verranno mostrati nel terminale. In caso di test falliti, il report dei test verrà aperto nel browser al termine dell'esecuzione; consulta la documentazione di Playwright per configurare questo comportamento.
Si presuppone che tutti i comandi vengano eseguiti dalla directory principale
Se stai confrontando gli snapshot per validare i tuoi test, potresti dover aggiornare gli snapshot di riferimento memorizzati nel repository. Per farlo, devi:
jlpm install
jlpm build:prod
Verifica che l'estensione sia installata in JupyterLab.
cd ./ui-tests
jlpm install
jlpm playwright install
cd ..
cd ./ui-tests
jlpm playwright test -u
Potrebbero verificarsi alcune discrepanze tra gli snapshot generati sul tuo computer e quelli generati sulla CI. Per facilitare l'aggiornamento degli snapshot in una PR, puoi digitare
please update playwright snapshotsper attivare l'aggiornamento da parte di un bot sulla CI. Una volta che il bot ha calcolato i nuovi snapshot, li committerà sul ramo della PR.
Si presuppone che tutti i comandi vengano eseguiti dalla directory principale
Per creare test, il modo più semplice è utilizzare lo strumento di generazione del codice di playwright:
jlpm install
jlpm build:prod
Verifica che l'estensione sia installata in JupyterLab.
cd ./ui-tests
jlpm install
jlpm playwright install
cd ..
cd ./ui-tests
jlpm start
cd ./ui-tests
jlpm playwright codegen localhost:8888
Si presuppone che tutti i comandi vengano eseguiti dalla directory principale
Per eseguire il debug dei test, un buon metodo è utilizzare lo strumento di ispezione di playwright:
jlpm install
jlpm build:prod
Verifica che l'estensione sia installata in JupyterLab.
cd ./ui-tests
jlpm install
jlpm playwright install
cd ..
cd ./ui-tests
jlpm playwright test --debug
Per aggiornare le versioni dei browser web, devi aggiornare il pacchetto @playwright/test:
cd ./ui-tests
jlpm up "@playwright/test"
jlpm playwright install