
Laboratório de pesquisa de segurança autorizado que reproduz o CVE-2024-39700 / GHSA-45gq-v5wm-82wg (solicitação pwn do update-integration-tests do extension-template do JupyterLab)
Esta pasta contém os testes de integração da extensão.
Eles são definidos usando o executor de testes Playwright e o auxiliar Galata.
A configuração do Playwright está definida em playwright.config.js.
A configuração do servidor JupyterLab a ser usada para o teste de integração está definida em jupyter_server_test_config.py.
A configuração padrão produzirá vídeo para testes com falha e um relatório HTML.
Existe um novo modo de interface experimental que você pode adorar; veja esse vídeo.
Todos os comandos devem ser executados a partir do diretório raiz
Para executar os testes, você precisa:
jlpm install
jlpm build:prod
Verifique se a extensão está instalada no JupyterLab.
cd ./ui-tests
jlpm install
jlpm playwright install
cd ..
cd ./ui-tests
jlpm playwright test
Os resultados dos testes serão exibidos no terminal. Em caso de falha em qualquer teste, o relatório de testes será aberto no seu navegador ao final da execução dos testes; consulte a documentação do Playwright para configurar esse comportamento.
Todos os comandos devem ser executados a partir do diretório raiz
Se você estiver comparando snapshots para validar seus testes, talvez seja necessário atualizar os snapshots de referência armazenados no repositório. Para isso, você precisa:
jlpm install
jlpm build:prod
Verifique se a extensão está instalada no JupyterLab.
cd ./ui-tests
jlpm install
jlpm playwright install
cd ..
cd ./ui-tests
jlpm playwright test -u
Pode haver alguma discrepância entre os snapshots gerados no seu computador e os gerados no CI. Para facilitar a atualização dos snapshots em um PR, você pode digitar
please update playwright snapshotspara acionar a atualização por um bot no CI. Depois que o bot calcular novos snapshots, ele os enviará para o branch do PR.
Todos os comandos devem ser executados a partir do diretório raiz
Para criar testes, a maneira mais fácil é usar a ferramenta de geração de código do playwright:
jlpm install
jlpm build:prod
Verifique se a extensão está instalada no JupyterLab.
cd ./ui-tests
jlpm install
jlpm playwright install
cd ..
cd ./ui-tests
jlpm start
cd ./ui-tests
jlpm playwright codegen localhost:8888
Todos os comandos devem ser executados a partir do diretório raiz
Para depurar testes, uma boa maneira é usar a ferramenta de inspeção do playwright:
jlpm install
jlpm build:prod
Verifique se a extensão está instalada no JupyterLab.
cd ./ui-tests
jlpm install
jlpm playwright install
cd ..
cd ./ui-tests
jlpm playwright test --debug
Para atualizar as versões dos navegadores web, você deve atualizar o pacote @playwright/test:
cd ./ui-tests
jlpm up "@playwright/test"
jlpm playwright install