Feature: Integration Testing Suite #67
Labels
No labels
area:api
area:core
area:docs
area:infra
area:ux
dependencies
documentation
duplicate
good first issue
help wanted
invalid
question
rust
status:complete
status:partial
status:planned
type:bug
type:design
type:feature
type:infra
type:refactor
type:research
type:ux
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
icub3d/decentcom#67
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Migrated from GitHub issue icub3d/decentcom#94
Original Author: @icub3d
Original Date: 2026-04-18T20:32:54Z
Feature: Integration Testing Suite
Overview
Implement a comprehensive integration testing suite that runs against actual server instances (open, private, strict). These tests will simulate a full client lifecycle: authentication, performing core actions (REST), and receiving real-time updates (Gateway/WebSocket). This ensures system-level correctness and protocol compliance across all server configurations.
Background
Currently, we have unit tests and a
test-setuptool to bootstrap development databases. However, we lack a way to automatically verify that a client can successfully interact with a running server for end-to-end flows. This feature will leverage the Rust SDK (#85) to provide a stable, maintainable way to test our protocol implementations.Requirements
tests/integration/orintegration-tests/.serverinstances with specifictest-configs/*.toml.SEND_MESSAGESis blocked).MESSAGE_CREATEwhen a message is sent).open,private, andstrictserver modes to ensure behavior consistency or expected differences.Design
Component Changes
integration-tests/in the root workspace.decentcom-sdk(from #85).sqlx(for direct DB verification when needed).Implementation Strategy
DATABASE_URL,SERVER_CONFIG_PATH).tokio::testand the SDK'sClient.sqlx.Task List
integration-tests/crate and workspace configuration.TestServerhelper that manages the server process and temporary SQLite database.open/private/strictbehaviors).Test List
test_auth_flow: Complete challenge-response and session token acquisition.test_message_send_receive: Send a message via REST, verify it appears in history and arrives via Gateway.test_permission_enforcement: Attempt unauthorized actions and verify 403 responses.test_multi_server_config: Run a standard test suite against all three default configs.Open Questions
testcontainersor stick to spawning local processes for simplicity? (Recommendation: Start with local processes for faster feedback).server/tests/? (Recommendation: Separate crate to ensure it only uses the public API/SDK).