
# 승인된 보안 연구 실험실: CVE-2024-39700 / GHSA-45gq-v5wm-82wg 재현 (JupyterLab extension-template update-integration-tests pwn 요청)
이 폴더에는 확장 프로그램의 통합 테스트가 포함되어 있습니다.
테스트는 Playwright 테스트 러너와 Galata 헬퍼를 사용하여 정의됩니다.
Playwright 구성은 playwright.config.js에 정의되어 있습니다.
통합 테스트에 사용할 JupyterLab 서버 구성은 jupyter_server_test_config.py에 정의되어 있습니다.
기본 구성은 실패한 테스트에 대한 비디오와 HTML 보고서를 생성합니다.
당신이 사랑에 빠질 수도 있는 새로운 실험적 UI 모드가 있습니다. 해당 비디오를 참조하세요.
모든 명령은 루트 디렉터리에서 실행된다고 가정합니다.
테스트를 실행하려면 다음을 수행해야 합니다:
jlpm install
jlpm build:prod
확장 프로그램이 JupyterLab에 설치되어 있는지 확인하세요.
cd ./ui-tests
jlpm install
jlpm playwright install
cd ..
cd ./ui-tests
jlpm playwright test
테스트 결과는 터미널에 표시됩니다. 테스트 실패가 있는 경우 테스트 보고서는 테스트 실행이 끝날 때 브라우저에서 열립니다. 해당 동작 구성은 Playwright 문서를 참조하세요.
모든 명령은 루트 디렉터리에서 실행된다고 가정합니다.
테스트 검증을 위해 스냅샷을 비교하는 경우, 저장소에 저장된 참조 스냅샷을 업데이트해야 할 수 있습니다. 이를 위해 다음을 수행해야 합니다:
jlpm install
jlpm build:prod
확장 프로그램이 JupyterLab에 설치되어 있는지 확인하세요.
cd ./ui-tests
jlpm install
jlpm playwright install
cd ..
cd ./ui-tests
jlpm playwright test -u
컴퓨터에서 생성된 스냅샷과 CI에서 생성된 스냅샷 사이에 약간의 차이가 발생할 수 있습니다. PR에서 스냅샷 업데이트를 쉽게 하려면
please update playwright snapshots라고 입력하여 CI의 봇이 업데이트를 트리거하도록 할 수 있습니다. 봇이 새 스냅샷을 계산하면 PR 브랜치에 커밋합니다.
모든 명령은 루트 디렉터리에서 실행된다고 가정합니다.
테스트를 생성하는 가장 쉬운 방법은 Playwright의 코드 생성기 도구를 사용하는 것입니다:
jlpm install
jlpm build:prod
확장 프로그램이 JupyterLab에 설치되어 있는지 확인하세요.
cd ./ui-tests
jlpm install
jlpm playwright install
cd ..
cd ./ui-tests
jlpm start
cd ./ui-tests
jlpm playwright codegen localhost:8888
모든 명령은 루트 디렉터리에서 실행된다고 가정합니다.
테스트를 디버그하는 좋은 방법은 Playwright의 검사기 도구를 사용하는 것입니다:
jlpm install
jlpm build:prod
확장 프로그램이 JupyterLab에 설치되어 있는지 확인하세요.
cd ./ui-tests
jlpm install
jlpm playwright install
cd ..
cd ./ui-tests
jlpm playwright test --debug
웹 브라우저 버전을 업데이트하려면 @playwright/test 패키지를 업데이트해야 합니다:
cd ./ui-tests
jlpm up "@playwright/test"
jlpm playwright install