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 testcommand runs all tests from repository rootnpm run test:headedandnpm run test:uifor 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/testwith 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/documentsendpointFixes #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.netnode 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.