godcrm/tests/TEST-SUMMARY.md
GOD CRM Release f89e074dd1
Some checks failed
CI / Lint / Typecheck / Test / Build (push) Has been cancelled
CI / PostgreSQL Integration Tests (push) Has been cancelled
GOD CRM — public scrubbed snapshot
Governed substrate for autonomous agents: scoped identity (passports),
audited actions, MCP workspace. Infra IPs and secrets redacted for public release.
2026-08-10 04:01:45 +03:00

254 lines
8.1 KiB
Markdown

# 🧪 MASTER TEST SUMMARY REPORT v2.0
## Run Information
- **Run ID:** `1767887478485-rgyyts`
- **Start Time:** 2026-01-08T15:51:18.485Z
- **End Time:** 2026-01-08T15:51:23.361Z
- **Environment:** https://devcrm.hltrn.cc/api/v3
---
## 📊 Coverage Summary
| Metric | Value |
|--------|-------|
| **Total Endpoints** | 124 |
| **Tested** | 70 (56%) |
| **Passed** | 225 |
| **Failed** | 2 |
### Coverage by Category
| Category | Total | Tested | Coverage |
|----------|-------|--------|----------|
| auth | 19 | 4 | 21% |
| spaces | 8 | 7 | 88% |
| projects | 4 | 4 | 100% |
| tables | 15 | 9 | 60% |
| widgets | 11 | 11 | 100% |
| documents | 12 | 5 | 42% |
| folders | 5 | 5 | 100% |
| files | 8 | 0 | 0% |
| api-keys | 5 | 5 | 100% |
| webhooks | 6 | 5 | 83% |
| user-settings | 4 | 3 | 75% |
| ai-agents | 13 | 7 | 54% |
| data-sources | 9 | 1 | 11% |
| schema | 4 | 3 | 75% |
| batch | 1 | 1 | 100% |
---
## 👤 Test Owner
| Field | Value |
|-------|-------|
| Email | `testowner@hltrn.cc` |
| User ID | `428` |
---
## 👥 Created Users (4)
| Email | Name | Role | Space Role | Password |
|-------|------|------|------------|----------|
| `admin-1767887478965-b0mje9@test.godcrm.local` | Admin 1767887478965-b0mje9 | admin | admin | `TestPass123!` |
| `manager-1767887479165-pcfge6@test.godcrm.local` | Manager 1767887479165-pcfge6 | user | editor | `TestPass123!` |
| `employee-1767887479360-h2hiij@test.godcrm.local` | Employee 1767887479360-h2hiij | user | editor | `TestPass123!` |
| `viewer-1767887479604-mfzjit@test.godcrm.local` | Viewer 1767887479604-mfzjit | viewer | viewer | `TestPass123!` |
---
## 📈 Created Entities
| Entity | Count |
|--------|-------|
| Spaces | 5 |
| Projects | 3 |
| Tables | 4 |
| Rows | 48 |
| Widgets | 15 |
| Dashboards | 4 |
| Documents | 1 |
| Folders | 1 |
| API Keys | 0 |
| Webhooks | 0 |
---
## ❌ Errors (0)
✅ No errors!
---
## 🔍 Endpoint Results
### ✅ Passed Endpoints (225)
| Method | Path | Status | Duration |
|--------|------|--------|----------|
| POST | `/auth/login` | 200 | 176ms |
| GET | `/auth/me` | 200 | 19ms |
| GET | `/auth/profile` | 200 | 3ms |
| PATCH | `/auth/profile` | 200 | 11ms |
| GET | `/spaces` | 200 | 15ms |
| POST | `/spaces` | 201 | 205ms |
| GET | `/spaces/:id` | 200 | 4ms |
| PUT | `/spaces/:id` | 200 | 10ms |
| GET | `/spaces/:spaceId/schema` | 200 | 10ms |
| POST | `/spaces/:id/data-sources-project` | 200 | 4ms |
| POST | `/spaces/:id/users-table` | 200 | 4ms |
| POST | `/spaces/:id/roles-table` | 200 | 4ms |
| GET | `/projects` | 200 | 5ms |
| POST | `/projects` | 201 | 11ms |
| PUT | `/projects/:id` | 200 | 13ms |
| GET | `/projects/:projectId/tables` | 200 | 5ms |
| GET | `/projects/:projectId/dashboard` | 200 | 11ms |
| GET | `/projects/:projectId/widgets` | 200 | 5ms |
| POST | `/projects/:projectId/documents/init` | 201 | 132ms |
| GET | `/projects/:projectId/documents` | 200 | 9ms |
| GET | `/projects/:projectId/folders` | 200 | 7ms |
| POST | `/projects/:projectId/folders` | 201 | 16ms |
| GET | `/projects/:projectId/webhooks` | 200 | 9ms |
| POST | `/projects` | 201 | 13ms |
| PUT | `/projects/:id` | 200 | 10ms |
| GET | `/projects/:projectId/tables` | 200 | 4ms |
| GET | `/projects/:projectId/dashboard` | 200 | 13ms |
| GET | `/projects/:projectId/widgets` | 200 | 5ms |
| POST | `/projects/:projectId/documents/init` | 201 | 172ms |
| GET | `/projects/:projectId/documents` | 200 | 13ms |
| GET | `/projects/:projectId/folders` | 200 | 9ms |
| POST | `/projects/:projectId/folders` | 201 | 15ms |
| GET | `/projects/:projectId/webhooks` | 200 | 8ms |
| POST | `/projects` | 201 | 10ms |
| PUT | `/projects/:id` | 200 | 11ms |
| GET | `/projects/:projectId/tables` | 200 | 4ms |
| GET | `/projects/:projectId/dashboard` | 200 | 11ms |
| GET | `/projects/:projectId/widgets` | 200 | 5ms |
| POST | `/projects/:projectId/documents/init` | 201 | 131ms |
| GET | `/projects/:projectId/documents` | 200 | 9ms |
| GET | `/projects/:projectId/folders` | 200 | 7ms |
| POST | `/projects/:projectId/folders` | 201 | 14ms |
| GET | `/projects/:projectId/webhooks` | 200 | 9ms |
| POST | `/projects` | 201 | 13ms |
| PUT | `/projects/:id` | 200 | 11ms |
| GET | `/projects/:projectId/tables` | 200 | 5ms |
| GET | `/projects/:projectId/dashboard` | 200 | 11ms |
| GET | `/projects/:projectId/widgets` | 200 | 4ms |
| POST | `/projects/:projectId/documents/init` | 201 | 124ms |
| GET | `/projects/:projectId/documents` | 200 | 9ms |
... and 175 more
### ❌ Failed Endpoints (2)
| Method | Path | Status | Duration |
|--------|------|--------|----------|
| POST | `/relations` | 500 | 9ms |
| DELETE | `/documents/:documentId` | 400 | 9ms |
### ⏳ Not Tested Endpoints
- `POST /auth/register` (auth)
- `POST /auth/logout` (auth)
- `POST /auth/refresh` (auth)
- `PATCH /auth/password` (auth)
- `PATCH /auth/email` (auth)
- `POST /auth/2fa/setup` (auth)
- `POST /auth/2fa/verify` (auth)
- `DELETE /auth/2fa` (auth)
- `POST /auth/forgot-password` (auth)
- `GET /auth/verify-reset-token/:token` (auth)
- `POST /auth/reset-password` (auth)
- `GET /auth/google/config` (auth)
- `GET /auth/google/auth-url` (auth)
- `POST /auth/google/callback` (auth)
- `POST /auth/google/config` (auth)
- `DELETE /spaces/:id` (spaces)
- `POST /tables/create-calendar` (tables)
- `PUT /tables/:tableId/rows/:rowId` (tables)
- `DELETE /tables/:tableId/rows/:rowId` (tables)
- `POST /tables/:tableId/connect` (tables)
- `POST /tables/:tableId/rows/batch-update` (tables)
- `POST /tables/:tableId/rows/batch-delete` (tables)
- `POST /documents/:documentId/import-v4` (documents)
- `POST /projects/:projectId/documents/add-language` (documents)
- `POST /documents/import` (documents)
- `GET /documents/:documentId/export` (documents)
- `PUT /documents/:documentId/structure` (documents)
- `POST /documents/:documentId/rebuild-structure` (documents)
- `POST /documents/setup-columns` (documents)
- `POST /files/upload` (files)
- `GET /files` (files)
- `GET /files/:fileId` (files)
- `DELETE /files/:fileId` (files)
- `GET /storage-providers` (files)
- `POST /storage-providers` (files)
- `PUT /storage-providers/:providerId` (files)
- `DELETE /storage-providers/:providerId` (files)
- `POST /incoming/:token` (webhooks)
- `DELETE /user-settings/spaces-order` (user-settings)
- `POST /ai/run` (ai-agents)
- `POST /ai/chat` (ai-agents)
- `POST /ai/process-prompt` (ai-agents)
- `POST /ai/providers/:providerId/refresh-models` (ai-agents)
- `PUT /ai/providers/:providerId` (ai-agents)
- `GET /ai/providers/:providerId/models` (ai-agents)
- `GET /data-sources/:id` (data-sources)
- `POST /data-sources` (data-sources)
- `PUT /data-sources/:id` (data-sources)
- `DELETE /data-sources/:id` (data-sources)
- `POST /data-sources/:id/test` (data-sources)
- `GET /data-sources/:id/tables` (data-sources)
- `GET /data-sources/:id/tables/:tableName/columns` (data-sources)
- `POST /data-sources/:id/import` (data-sources)
- `POST /spaces/:spaceId/schema/tables` (schema)
---
## 🧹 Cleanup Command
```bash
./tests/scripts/run-scenarios.sh cleanup dev --email testowner@hltrn.cc --password testpass123!
```
---
*Generated by Master Test Scenario v2.0*
---
## 🐛 Known Backend Issues
### 1. POST `/relations` - 500 Internal Server Error
**Cause:** The code uses `name` instead of `column_name` in the SQL query
```sql
SELECT * FROM table_columns WHERE table_id = ? AND name = ?
```
**Fix:** Replace `name` with `column_name` in `backend/routes/v3/schema.js`
### 2. Document v3/v4 API Incompatibility
**Problem:** `GET /documents/:documentId/export` and `PUT /documents/:documentId/structure`
require `documents_table_id` and `sections_table_id`, but `POST /documents/init` v4
returns `registry_table_id` and `atoms_table_id`.
**Solution:** Update the export/structure endpoints to support the v4 format, or create separate v4 endpoints.
---
## 📝 Untested Categories
### Files (0% - 8 endpoints)
Requires implementing file upload in the test (multipart/form-data)
### Auth (21% - 15 untested)
Most endpoints require special setup:
- 2FA (setup, verify, disable)
- Google OAuth (config, callback)
- Password reset (forgot, verify-token, reset)
- Register (conflicts with cleanup)
- Logout, Refresh
### Data Sources (11% - 8 untested)
Requires an external MySQL database for full testing