Documents Tests
Dashboard (/business/apps/documents)
Section titled “Dashboard (/business/apps/documents)”| Test ID | Description | Preconditions | Steps | Expected Result | Priority |
|---|---|---|---|---|---|
| DOC-001 | Dashboard loads stats and recent documents | User has uploaded documents | 1. Navigate to /business/apps/documents. | Stats displayed (total documents, storage used, by category/status). Up to 5 recent documents shown. | P0 |
| DOC-002 | Dashboard empty state | User has no documents | 1. Navigate to dashboard. | Stats show zeros. Empty state with CTA to upload first document. | P1 |
Upload (/business/apps/documents/upload)
Section titled “Upload (/business/apps/documents/upload)”| Test ID | Description | Preconditions | Steps | Expected Result | Priority |
|---|---|---|---|---|---|
| DOC-010 | Upload valid file | Categories and statuses exist | 1. Navigate to /business/apps/documents/upload. 2. Select a file under 50MB with an allowed type. 3. Fill metadata (name, description, category, status). 4. Submit upload action. | File uploaded to Supabase storage. Document record created. User redirected to /business/apps/documents/{id}. | P0 |
| DOC-011 | Upload without file | None | 1. Submit upload without selecting a file. | Returns 400 “Please select a file to upload”. | P0 |
| DOC-012 | Upload file exceeding 50MB | None | 1. Select a file larger than 50MB. 2. Submit upload. | Returns 400 “File is too large. Maximum size is 50MB.” File is not uploaded. | P0 |
| DOC-013 | Upload disallowed file type | None | 1. Select a file with a disallowed MIME type (e.g., .exe). 2. Submit upload. | Returns 400 “File type not allowed.” File is not uploaded. | P0 |
| DOC-014 | Upload with form validation errors | None | 1. Submit upload with a valid file but missing required metadata (e.g., empty name). | Returns 400 with form validation errors. File is not uploaded. | P1 |
| DOC-015 | Upload with retention settings | None | 1. Upload file with retention_days and retention_action set. | Document created with retention policy stored. | P1 |
| DOC-016 | Supabase storage upload failure | Storage service unavailable | 1. Simulate storage upload error. 2. Submit upload. | Returns 500 “Upload failed: {error}”. No document record created. | P2 |
| DOC-017 | Unauthenticated upload | Not signed in | 1. Submit upload without auth. | Returns 401. | P0 |
| DOC-018 | Categories and statuses loaded on page | User has categories and statuses | 1. Navigate to upload page. | Category and status dropdowns populated with user’s data. | P1 |
All Documents (/business/apps/documents/all)
Section titled “All Documents (/business/apps/documents/all)”| Test ID | Description | Preconditions | Steps | Expected Result | Priority |
|---|---|---|---|---|---|
| DOC-020 | List documents with pagination | User has more than 20 documents | 1. Navigate to /business/apps/documents/all. | First 20 documents displayed. Total count available for pagination. | P0 |
| DOC-021 | Filter by search | User has documents | 1. Enter search term. | Documents matching the search are shown. | P1 |
| DOC-022 | Filter by category | User has categorized documents | 1. Set ?category={id}. | Only documents in that category shown. | P1 |
| DOC-023 | Filter by status | User has documents with different statuses | 1. Set ?status={id}. | Only documents with that status shown. | P1 |
| DOC-024 | Filter archived documents | User has archived documents | 1. Set ?archived=true. | Only archived documents shown. | P1 |
| DOC-025 | Paginate results | More than 20 documents | 1. Set ?page=2. | Second page of results displayed. | P1 |
| DOC-026 | Delete document from list | Document exists | 1. Submit delete action with document id. | Document deleted. deleted: true returned. | P0 |
| DOC-027 | Archive document from list | Active document exists | 1. Submit archive action with document id. | Document archived. archived: true returned. | P1 |
| DOC-028 | Restore document from list | Archived document exists | 1. Submit restore action with document id. | Document restored. restored: true returned. | P1 |
| DOC-029 | Combined filters | Diverse document data | 1. Apply search, category, status, and archived filters simultaneously. | Results reflect all active filters. | P2 |
Document Detail (/business/apps/documents/[id])
Section titled “Document Detail (/business/apps/documents/[id])”Viewing
Section titled “Viewing”| Test ID | Description | Preconditions | Steps | Expected Result | Priority |
|---|---|---|---|---|---|
| DOC-030 | View document detail | Document exists for user | 1. Navigate to /business/apps/documents/{id}. | Document metadata displayed. Tabs/sections for: versions, comments, audit trail, shares, links, metadata. Forms for commenting, sharing, and link creation available. | P0 |
| DOC-031 | Non-existent document returns 404 | None | 1. Navigate to /business/apps/documents/{nonexistent-id}. | Returns 404 “Document not found”. | P1 |
| DOC-032 | Access another user’s document | Document belongs to different user | 1. Navigate to document detail for another user’s doc. | Returns 403. | P0 |
Comments
Section titled “Comments”| Test ID | Description | Preconditions | Steps | Expected Result | Priority |
|---|---|---|---|---|---|
| DOC-040 | Add comment | Document exists | 1. Fill comment form with content. 2. Submit add-comment action. | Comment added. Success message “Comment added!” displayed. Comment appears in list. | P1 |
| DOC-041 | Add comment with validation error | None | 1. Submit add-comment with empty content. | Returns 400 with form validation errors. | P1 |
| DOC-042 | Delete comment | Comment exists | 1. Submit delete-comment action with comment id. | Comment deleted. deleted: true returned. | P1 |
Sharing
Section titled “Sharing”| Test ID | Description | Preconditions | Steps | Expected Result | Priority |
|---|---|---|---|---|---|
| DOC-050 | Share document | Document exists | 1. Fill share form (email, permission level). 2. Submit share action. | Document shared. Success message “Document shared!” displayed. Share appears in shares list. | P0 |
| DOC-051 | Share with validation errors | None | 1. Submit share with invalid email. | Returns 400 with form validation errors. | P1 |
| DOC-052 | Revoke share | Share exists | 1. Submit revoke-share action with share id. | Share revoked. revoked: true returned. | P1 |
| DOC-053 | Create shareable link | Document exists | 1. Fill link form (expiration, password options). 2. Submit create-link action. | Link created. Success message “Link created!” displayed. Link appears in links list. | P1 |
| DOC-054 | Create link with validation errors | None | 1. Submit create-link with invalid data. | Returns 400 with form validation errors. | P1 |
| DOC-055 | Delete shareable link | Link exists | 1. Submit delete-link action with link id. | Link deleted. deleted: true returned. | P1 |
Versioning
Section titled “Versioning”| Test ID | Description | Preconditions | Steps | Expected Result | Priority |
|---|---|---|---|---|---|
| DOC-060 | Upload new version | Document exists | 1. Select a new file. 2. Submit upload-version action. | New version uploaded to storage. Version record created. uploaded: true returned. Version appears in versions list. | P0 |
| DOC-061 | Upload version without file | None | 1. Submit upload-version without selecting a file. | Returns 400 “Please select a file”. | P1 |
| DOC-062 | Upload version storage failure | Storage unavailable | 1. Simulate storage upload error. | Returns 500 with upload error message. | P2 |
| DOC-063 | Version history displayed | Document has multiple versions | 1. Navigate to document detail. | All versions listed with upload date, file size, and storage path. | P1 |
Lifecycle
Section titled “Lifecycle”| Test ID | Description | Preconditions | Steps | Expected Result | Priority |
|---|---|---|---|---|---|
| DOC-070 | Archive document | Active document | 1. Submit archive action. | Document archived. archived: true returned. | P1 |
| DOC-071 | Restore document | Archived document | 1. Submit restore action. | Document restored. restored: true returned. | P1 |
| DOC-072 | Delete document | Document exists | 1. Submit delete action. | Document deleted. User redirected to /business/apps/documents. | P0 |
Edit Document (/business/apps/documents/[id]/edit)
Section titled “Edit Document (/business/apps/documents/[id]/edit)”| Test ID | Description | Preconditions | Steps | Expected Result | Priority |
|---|---|---|---|---|---|
| DOC-080 | Load edit form | Document exists | 1. Navigate to /business/apps/documents/{id}/edit. | Form pre-populated with name, description, category_id, status_id, retention_days, retention_action. Categories and statuses loaded in dropdowns. | P0 |
| DOC-081 | Update document metadata | Document exists | 1. Modify metadata fields. 2. Submit update action. | Document updated. User redirected to /business/apps/documents/{id}. | P0 |
| DOC-082 | Update with validation errors | None | 1. Submit update with invalid data. | Returns 400 with form validation errors. | P1 |
| DOC-083 | Access control on edit | Document belongs to another user | 1. Navigate to edit page for another user’s document. | Returns 403. | P0 |
Categories (/business/apps/documents/categories)
Section titled “Categories (/business/apps/documents/categories)”| Test ID | Description | Preconditions | Steps | Expected Result | Priority |
|---|---|---|---|---|---|
| DOC-090 | List categories | User has categories | 1. Navigate to /business/apps/documents/categories. | All categories listed. Create form available. | P0 |
| DOC-091 | Create category | None | 1. Fill category form (name). 2. Submit create action. | Category created. Success message “Category created!” displayed. | P0 |
| DOC-092 | Create with validation errors | None | 1. Submit create with empty name. | Returns 400 with validation errors. | P1 |
| DOC-093 | Update category | Category exists | 1. Submit update action with id, name, description, and optional parent_id. | Category updated. updated: true returned. | P1 |
| DOC-094 | Delete category | Category exists with no documents | 1. Submit delete action with category id. | Category deleted. deleted: true returned. | P1 |
| DOC-095 | Delete category with documents | Category has associated documents | 1. Submit delete action. | Returns 400 “Cannot delete”. Category preserved. | P1 |
Statuses (/business/apps/documents/statuses)
Section titled “Statuses (/business/apps/documents/statuses)”| Test ID | Description | Preconditions | Steps | Expected Result | Priority |
|---|---|---|---|---|---|
| DOC-100 | List statuses | User has statuses | 1. Navigate to /business/apps/documents/statuses. | All statuses listed with name, color, and default flag. Create form available. | P0 |
| DOC-101 | Create status | None | 1. Fill status form (name, color_code). 2. Submit create action. | Status created. Success message “Status created!” displayed. | P0 |
| DOC-102 | Create status with validation errors | None | 1. Submit create with empty name. | Returns 400 with validation errors. | P1 |
| DOC-103 | Update status | Status exists | 1. Submit update with id, name, color_code, description, and is_default. | Status updated. updated: true returned. | P1 |
| DOC-104 | Set default status | Status exists | 1. Submit update with is_default=true. | Status marked as default. Previous default is unset (if applicable). | P2 |
| DOC-105 | Delete status | Status exists with no documents | 1. Submit delete action with status id. | Status deleted. deleted: true returned. | P1 |
| DOC-106 | Delete status with documents | Status has associated documents | 1. Submit delete action. | Returns 400 “Cannot delete”. Status preserved. | P1 |