Files
Orchestrator/bahn/db-planet-mcp-server/manual-test-plan.md
ankn a5f8fb49ab Migrate all repos into monorepo context folders
Bahn: aisupport, Analyse-O2C-C2S, awesome-bahn-mcp-servers, beam-mcp,
      Confluence_Bot, db-planet-mcp-server, O2C-Harness, project-audit,
      Projekt-KIQ-HP, teamlandkarte-mcp
Dhive: Jury-Voting
Privat: CV, NoteGraph (NOTE: NoteGraph needs complete redo after consolidation)
Shared: AI-Orchestrator, OrgMyLife, power_skills_and_more
Shared/references: symphony (read-only)

Bahn repos remain available as independent remotes - this monorepo
pulls them in via subtree, the originals are untouched.
2026-06-30 20:39:52 +02:00

169 lines
12 KiB
Markdown

# DB Planet MCP Server — Manual Test Plan
Based on the 8 component specs and actual tool implementations.
Test against staging: `https://dbahn-staging.haiilo.cloud/`
---
## Component 1: Information Discovery & Search
### Tools: Search_FullText, Search_QuickEntity, Search_Grouped
| # | Use Case | Tool | Test Input | Expected Result | Status | Notes |
|---|----------|------|------------|-----------------|--------|-------|
| 1.1 | Global full-text search | Search_FullText | `query: "sustainability"` | Returns result list with id, title, type, excerpt, modified | | |
| 1.2 | Full-text search with pagination | Search_FullText | `query: "test", page: 0, pageSize: 3` | Returns max 3 results | | |
| 1.3 | Full-text search — no results | Search_FullText | `query: "xyznonexistent999"` | Returns "No results found" message | | |
| 1.3a | Full-text search — quoted query (LLM edge case) | Search_FullText | `query: '"sustainability initiative"'` | Should strip quotes and return results | | Fixed: quote stripping added |
| 1.4 | Quick entity search (users, pages, etc.) | Search_QuickEntity | `query: "Alexandra"` | Returns matching entities | | |
| 1.5 | Quick entity search — no results | Search_QuickEntity | `query: "xyznonexistent999"` | Returns "No entities found" message | | |
| 1.6 | Grouped search by content type | Search_Grouped | `query: "GenAI"` | Returns results grouped by type | | |
| 1.7 | Search for events | Search_QuickEntity | `query: "Town Hall"` | Returns event entities | | |
| 1.8 | Search for workspaces | Search_QuickEntity | `query: "Innovation"` | Returns workspace entities | | |
---
## Component 2: Workspace Management & Collaboration
### Tools: Workspace_List, Workspace_Get, Workspace_GetMembers, Workspace_Join, Workspace_Create
| # | Use Case | Tool | Test Input | Expected Result | Status | Notes |
|---|----------|------|------------|-----------------|--------|-------|
| 2.1 | List all workspaces | Workspace_List | _(no params)_ | Returns list of workspaces | | |
| 2.2 | Get workspace details by ID | Workspace_Get | `id: "<UUID from 2.1>"` | Returns workspace name, description, visibility | | |
| 2.3 | Get workspace members | Workspace_GetMembers | `id: "<UUID from 2.1>"` | Returns member list with roles | | |
| 2.4 | Join a workspace | Workspace_Join | `id: "<UUID of a workspace you're not in>"` | Returns success message | | |
| 2.5 | Create a new workspace | Workspace_Create | `name: "Manual Test Workspace", visibility: "PUBLIC"` | Returns created workspace JSON | | |
| 2.6 | Create workspace with PRIVATE visibility | Workspace_Create | `name: "Private Test WS", visibility: "PRIVATE"` | Returns created workspace with visibility=PRIVATE | | |
| 2.7 | Get non-existent workspace | Workspace_Get | `id: "00000000-0000-0000-0000-000000000000"` | Returns 404 error | | |
---
## Component 3: News & Content Consumption
### Tools: News_GetFeed
### ⚠️ Known Issue: GET /web/blog/newsfeed returns 404 on staging
| # | Use Case | Tool | Test Input | Expected Result | Status | Notes |
|---|----------|------|------------|-----------------|--------|-------|
| 3.1 | Get news feed (default) | News_GetFeed | _(no params)_ | Returns articles OR 404 (staging limitation) | ⚠️ | Endpoint missing on staging |
| 3.2 | Get only published articles | News_GetFeed | `includePublished: true` | Returns published articles OR 404 | ⚠️ | |
| 3.3 | Get scheduled articles | News_GetFeed | `includeScheduled: true` | Returns scheduled articles OR 404 | ⚠️ | |
| 3.4 | Get drafts | News_GetFeed | `includeDrafts: true` | Returns draft articles OR 404 | ⚠️ | |
| 3.5 | Filter by date | News_GetFeed | `limitDate: "2025-01"` | Returns articles from Jan 2025 OR 404 | ⚠️ | |
---
## Component 4: People Directory & User Profiles
### Tools: People_GetMe, People_Get, People_List, People_Search
| # | Use Case | Tool | Test Input | Expected Result | Status | Notes |
|---|----------|------|------------|-----------------|--------|-------|
| 4.1 | Get current user profile | People_GetMe | _(no params)_ | Returns authenticated user's profile | | |
| 4.2 | List users with pagination | People_List | `page: 0, pageSize: 5` | Returns max 5 users | | |
| 4.3 | List users — default | People_List | _(no params)_ | Returns user list | | |
| 4.4 | Search people by name | People_Search | `query: "Alexandra"` | Returns matching users | | |
| 4.5 | Search people — no results | People_Search | `query: "xyznonexistent999"` | Returns "No people found" message | | |
| 4.6 | Get user by ID | People_Get | `id: "<UUID from 4.1 or 4.4>"` | Returns user profile details | | |
| 4.7 | Get non-existent user | People_Get | `id: "00000000-0000-0000-0000-000000000000"` | Returns 404 error | | |
---
## Component 5: Event Discovery & Participation
### Tools: Event_Get, Event_GetMemberships, Event_UpdateStatus, Event_Create
| # | Use Case | Tool | Test Input | Expected Result | Status | Notes |
|---|----------|------|------------|-----------------|--------|-------|
| 5.1 | Get event details | Event_Get | `id: "<UUID from Search_QuickEntity>"` | Returns event name, dates, location, description | | |
| 5.2 | Get event participants | Event_GetMemberships | `id: "<UUID with showParticipants=true>"` | Returns participant list | | |
| 5.3 | Get participants — hidden | Event_GetMemberships | `id: "<UUID with showParticipants=false>"` | Returns 404 | | |
| 5.4 | Accept event | Event_UpdateStatus | `id: "<UUID>", status: "ATTENDING"` | Returns success message | | |
| 5.5 | Decline event | Event_UpdateStatus | `id: "<UUID>", status: "NOT_ATTENDING"` | Returns success message | | |
| 5.6 | Tentative event | Event_UpdateStatus | `id: "<UUID>", status: "TENTATIVE"` | Returns success message | | |
| 5.7 | Create event | Event_Create | `title: "Test Event", startDate: "2026-05-01T10:00:00Z", endDate: "2026-05-01T12:00:00Z"` | Returns created event JSON | | |
| 5.8 | Create event with location | Event_Create | `title: "Office Event", startDate: "2026-05-01T10:00:00Z", endDate: "2026-05-01T12:00:00Z", location: "Frankfurt HQ"` | Returns event with place=Frankfurt HQ | | |
| 5.9 | Get non-existent event | Event_Get | `id: "00000000-0000-0000-0000-000000000000"` | Returns 404 error | | |
---
## Component 6: Social Engagement & Interaction
### Tools: Social_GetComments, Social_PostComment, Social_GetLikes, Social_ToggleLike
| # | Use Case | Tool | Test Input | Expected Result | Status | Notes |
|---|----------|------|------------|-----------------|--------|-------|
| 6.1 | Get comments on blog article | Social_GetComments | `targetId: "<blog-article UUID>", targetType: "blog-article"` | Returns comment list | | |
| 6.2 | Get comments on timeline item | Social_GetComments | `targetId: "<timeline-item UUID>", targetType: "timeline-item"` | Returns comment list | | |
| 6.3 | Get comments on wiki article | Social_GetComments | `targetId: "<wiki-article UUID>", targetType: "wiki-article"` | Returns comment list | | |
| 6.4 | Get comments — unsupported type | Social_GetComments | `targetId: "<UUID>", targetType: "event"` | Returns error or empty (API rejects unsupported types) | | |
| 6.5 | Post a comment | Social_PostComment | `targetId: "<blog-article UUID>", targetType: "blog-article", body: "Test comment from MCP"` | Returns success message | | |
| 6.6 | Get likes on blog article | Social_GetLikes | `targetType: "blog-article", targetId: "<blog-article UUID>"` | Returns like count and list | | |
| 6.7 | Toggle like | Social_ToggleLike | `targetType: "blog-article", targetId: "<blog-article UUID>", userId: "<your user UUID>"` | Returns "Like toggled successfully" | | |
| 6.8 | Toggle like again (unlike) | Social_ToggleLike | _(same as 6.7)_ | Toggles back — verify with Social_GetLikes | | |
| 6.9 | Get likes — unsupported type | Social_GetLikes | `targetType: "event", targetId: "<UUID>"` | Returns error | | |
---
## Component 7: Notification Management
### Tools: Notification_List, Notification_GetStatus, Notification_MarkSeen
| # | Use Case | Tool | Test Input | Expected Result | Status | Notes |
|---|----------|------|------------|-----------------|--------|-------|
| 7.1 | Get notification status | Notification_GetStatus | _(no params)_ | Returns unseen notification count | | |
| 7.2 | List ACTIVITY notifications | Notification_List | `category: "ACTIVITY"` | Returns activity notifications | | |
| 7.3 | List DISCUSSION notifications | Notification_List | `category: "DISCUSSION"` | Returns discussion notifications | | |
| 7.4 | List notifications with pagination | Notification_List | `category: "ACTIVITY", page: 0, pageSize: 3` | Returns max 3 notifications | | |
| 7.5 | List notifications — no category | Notification_List | _(no params)_ | Returns notifications or error if category required | | |
| 7.6 | Mark ACTIVITY as seen | Notification_MarkSeen | `category: "ACTIVITY"` | Returns success message | | |
| 7.7 | Mark all as seen | Notification_MarkSeen | _(no params)_ | Returns success message | | |
| 7.8 | Verify mark seen worked | Notification_GetStatus | _(no params)_ | Unseen count should be 0 or lower than 7.1 | | |
---
## Component 8: Page Management
### Tools: Page_List, Page_Get, Page_GetMembers, Page_Create
### ⚠️ Known Issue: POST /api/pages returns 404 on staging
| # | Use Case | Tool | Test Input | Expected Result | Status | Notes |
|---|----------|------|------------|-----------------|--------|-------|
| 8.1 | List all pages | Page_List | _(no params)_ | Returns list of pages | | |
| 8.2 | Get page details by ID | Page_Get | `id: "<UUID from 8.1>"` | Returns page name, visibility, details | | |
| 8.3 | Get page by slug | Page_Get | `id: "<slug from 8.1>"` | Returns page details | | |
| 8.4 | Get page members | Page_GetMembers | `id: "<UUID from 8.1>"` | Returns member/admin list | | |
| 8.5 | Create a page | Page_Create | `title: "Manual Test Page"` | Returns created page OR 404 (staging) | ⚠️ | Endpoint missing on staging |
| 8.6 | Create page with options | Page_Create | `title: "DE Test Page", visibility: "PUBLIC", defaultLanguage: "DE"` | Returns page OR 404 | ⚠️ | |
| 8.7 | Get non-existent page | Page_Get | `id: "00000000-0000-0000-0000-000000000000"` | Returns 404 error | | |
---
## Bonus: Content_GetFull (Cross-cutting)
| # | Use Case | Tool | Test Input | Expected Result | Status | Notes |
|---|----------|------|------------|-----------------|--------|-------|
| 9.1 | Get full blog article content | Content_GetFull | `contentType: "blog-article", contentId: "<UUID>", appId: "<appId from Search_FullText>"` | Returns rendered article text | | |
| 9.2 | Get full wiki article content | Content_GetFull | `contentType: "wiki-article", contentId: "<UUID>", appId: "<appId>"` | Returns rendered wiki text | | |
| 9.3 | Get page content | Content_GetFull | `contentType: "page", contentId: "<UUID>"` | Returns page content | | |
| 9.4 | Get workspace content | Content_GetFull | `contentType: "workspace", contentId: "<UUID>"` | Returns workspace content | | |
| 9.5 | Unsupported content type | Content_GetFull | `contentType: "unknown-type", contentId: "abc"` | Returns "Unsupported content type" error | | |
---
## Test Workflow Tips
1. Start with **People_GetMe** (4.1) to get your user UUID — needed for Social_ToggleLike and verifying create operations
2. Use **Search_FullText** (1.1) with `pageSize: 2` to get real content IDs, appIds, and slugs for other tests
3. Use **Search_QuickEntity** (1.4) to find event UUIDs for Component 5 tests
4. For Social tests (Component 6), first get a blog-article UUID from search results
5. Components 3 (News) and 8.5-8.6 (Page_Create) are known to 404 on staging — document but don't block on them
## Summary Template
After testing, fill in the Status column with:
- ✅ = Pass
- ❌ = Fail (add reason in Notes)
- ⚠️ = Known limitation / staging issue