
Laboratorio de investigación de seguridad autorizado que reproduce CVE-2024-39700 / GHSA-45gq-v5wm-82wg (solicitud pwn de update-integration-tests de la plantilla de extensiones de JupyterLab)
Esta carpeta contiene las pruebas de integración de la extensión.
Están definidas utilizando el ejecutor de pruebas Playwright y la ayuda de Galata.
La configuración de Playwright se define en playwright.config.js.
La configuración del servidor de JupyterLab que se utiliza para las pruebas de integración se define en jupyter_server_test_config.py.
La configuración predeterminada generará un video para las pruebas fallidas y un informe HTML.
Hay un nuevo modo de interfaz experimental que puede que te enamore; consulta ese video.
Se asume que todos los comandos se ejecutan desde el directorio raíz
Para ejecutar las pruebas, necesitas:
jlpm install
jlpm build:prod
Verifica que la extensión esté instalada en JupyterLab.
cd ./ui-tests
jlpm install
jlpm playwright install
cd ..
cd ./ui-tests
jlpm playwright test
Los resultados de las pruebas se mostrarán en la terminal. En caso de que alguna prueba falle, el informe de pruebas se abrirá en tu navegador al finalizar la ejecución de las pruebas; consulta la documentación de Playwright para configurar ese comportamiento.
Se asume que todos los comandos se ejecutan desde el directorio raíz
Si estás comparando instantáneas para validar tus pruebas, es posible que necesites actualizar las instantáneas de referencia almacenadas en el repositorio. Para hacerlo, necesitas:
jlpm install
jlpm build:prod
Verifica que la extensión esté instalada en JupyterLab.
cd ./ui-tests
jlpm install
jlpm playwright install
cd ..
cd ./ui-tests
jlpm playwright test -u
Puede haber algunas discrepancias entre las instantáneas generadas en tu computadora y las generadas en el CI. Para facilitar la actualización de las instantáneas en un PR, puedes escribir
please update playwright snapshotspara activar la actualización mediante un bot en el CI. Una vez que el bot haya calculado las nuevas instantáneas, las confirmará en la rama del PR.
Se asume que todos los comandos se ejecutan desde el directorio raíz
Para crear pruebas, la forma más sencilla es utilizar la herramienta de generación de código de Playwright:
jlpm install
jlpm build:prod
Verifica que la extensión esté instalada en JupyterLab.
cd ./ui-tests
jlpm install
jlpm playwright install
cd ..
cd ./ui-tests
jlpm start
cd ./ui-tests
jlpm playwright codegen localhost:8888
Se asume que todos los comandos se ejecutan desde el directorio raíz
Para depurar pruebas, una buena forma es utilizar la herramienta de inspección de Playwright:
jlpm install
jlpm build:prod
Verifica que la extensión esté instalada en JupyterLab.
cd ./ui-tests
jlpm install
jlpm playwright install
cd ..
cd ./ui-tests
jlpm playwright test --debug
Para actualizar las versiones de los navegadores web, debes actualizar el paquete @playwright/test:
cd ./ui-tests
jlpm up "@playwright/test"
jlpm playwright install