This repository contains automated end-to-end tests for GrabDocs, an intelligent document management platform.
Tests are implemented using Python, Pytest, and Playwright to validate key user workflows such as authentication, workspace management, uploads, and chat functionality.
├── Grabdocs Test Plan.pdf # Reference document for test planning
├── logged_in.json # Stored login state (auto-generated)
├── README.md # Project documentation (this file)
├── requirements.txt # Python dependencies (note: “tsxt” → typo fix)
└── tests/
├── conftest.py # Pytest fixtures (setup, authentication)
├── test_auth.py # Authentication and session tests
├── test_chat.py # Chat-related test cases
├── test_files.py # Files related test cases
└── test_workspace.py # Workspace creation and deletion tests
git clone https://github.com/queendebra92/grabdocs_tests
cd grabdocs-testspython -m venv venv
source venv/bin/activate # On Linux/macOS
venv\Scripts\activate # On Windowspip install -r requirements.txtIf requirements.txt doesn’t exist yet, create it with:
pytest
playwright
pytest-playwright
python-dotenvThen install Playwright browsers:
playwright installSet credentials used for logging into GrabDocs:
export EMAIL="your_email@example.com"
export PASSWORD="your_password"Or create a .env file:
EMAIL=your_email@example.com
PASSWORD=your_password
Run all tests:
pytest -vRun a specific test file:
pytest tests/test_auth.py -vRun tests in headed mode (browser visible):
pytest --headed| Test File | Description |
|---|---|
test_auth.py |
Validates login, remember-me, and logout flow |
test_workspace.py |
Creates and deletes team workspaces |
test_chat.py |
Tests chat input and message visibility |
test_files.py |
Uploads files to the dashboard and validates success |
Each test reuses an authenticated Playwright context managed by conftest.py, preventing redundant logins and improving test efficiency.
| Fixture | Scope | Description |
|---|---|---|
base_url |
session | The GrabDocs app base URL |
email / password |
session | User credentials from environment |
browser_context |
session | Provides a single browser session |
authenticated_context |
session | Logs in and reuses an authenticated browser context |
page.set_input_files("input[type='file']", "Grabdocs Test Plan.pdf")
expect(page.get_by_text("No documents uploaded yet")).not_to_be_visible()This test validates that file uploads successfully remove the "No documents uploaded yet" message on the GrabDocs Upload page.
GrabDocs — Intelligent Document Management
Automate document handling, chat with your data, and transform your workspace productivity.
Visit GrabDocs →
- If
logged_in.jsonexists, tests will reuse it for faster sessions. - Some tests (e.g. “Remember Me”) may be known to fail due to unimplemented features in the current production environment.
- You can safely delete
logged_in.jsonto force reauthentication.