Add comprehensive E2E test framework with Playwright #116
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR implements a complete end-to-end testing framework using Playwright to cover both API endpoints and UI functionality as requested in the issue.
🧪 Test Framework Setup
/test/e2e/
with comprehensive coveragenpm test
command runs all tests from repository rootnpm run test:headed
andnpm run test:ui
for interactive testing📋 Test Coverage
API Endpoint Tests (
test/e2e/api-*.spec.ts
)documents-post.ts
): PDF file upload validation, multipart form handling, error casesdocuments-get.ts
): File download, 404 handling, content-type validationchats-post.ts
): NDJSON streaming responses, session management, error handlingUI Tests (
test/e2e/ui-chat.spec.ts
)Full E2E Workflows (
test/e2e/full-workflow.spec.ts
)🛠 Infrastructure
/test/e2e/
with usage instructions@playwright/test
with proper TypeScript support📊 Test Statistics
54 tests across 4 test files providing comprehensive coverage:
🚀 Usage
The framework validates both the 2 base scenarios mentioned in the issue:
/api/documents
endpointFixes #5.
Warning
Firewall rules blocked me from connecting to one or more addresses
I tried to connect to the following addresses, but was blocked by firewall rules:
functionscdn.azureedge.net
node lib/install.js
(dns block)If you need me to access, download, or install something from one of these locations, you can either:
💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.