Skip to content

Testing strategy and conventions guide #545

Closed

Description

@codebestia

Write docs/testing.md: the cross-app testing philosophy and the conventions a contributor must follow. The most important rule: tests never start real external services — Redis, Postgres, S3/MinIO are always mocked or replaced with in-process fakes (ioredis-mock, the local-disk object store, mocked db), so pnpm test runs with no Docker.

Acceptance criteria:

  • States the no-external-services rule explicitly, with the reasoning and the approved substitutes for each dependency
  • Documents the per-app runners and commands (vitest for backend and web, pytest for the AI agent, cargo test for contracts)
  • Explains the established Drizzle mocking pattern used across the backend suite, and why .values() sometimes has to be both thenable and expose .returning()
  • Documents that socket handlers must be exercised via the enveloped dispatch event, not by grabbing a raw socket.on listener
  • Notes the trap that shared in-process rate-limit counters leak between tests unless reset

Activity

  1. teejayboy4tony-sketch commented on Aug 28, 2026

    @teejayboy4tony-sketch

    @codebestia
    I’d like to take this issue.

    I’ll write docs/testing.md as a clear contributor-facing guide covering the cross-app testing philosophy and conventions. I’ll explicitly document the no-external-services rule, including the approved Redis, Postgres, and S3/MinIO substitutes, along with the commands for running tests across the backend, web, AI agent, and contracts.

    I’ll also document the established Drizzle mocking approach, including the .values() thenable/.returning() requirement, the correct enveloped dispatch approach for socket handlers, and the need to reset shared in-process rate-limit state between tests.

    The goal will be a concise, practical guide that contributors can follow to run the complete test suite reliably with pnpm test and without Docker.

  2. emmixeryng commented on Aug 28, 2026

    @emmixeryng

    @emmixeryng has applied to work on this issue as part of the Stellar Wave Program's 8th wave.

    Hi maintainer, let me fix this issue ASAP

    ℹ️ Repo Maintainers: To accept this application, review their application or assign @emmixeryng to this issue.

  3. Deb-Auth commented on Aug 30, 2026

    @Deb-Auth

    @Deb-Auth has applied to work on this issue as part of the Stellar Wave Program's 8th wave.

    I'm interested in working on this issue. I'll carefully follow the project's guidelines and submit a tested, maintainable solution.

    ℹ️ Repo Maintainers: To accept this application, review their application or assign @Deb-Auth to this issue.

  4. drips-wave commented on Aug 30, 2026

    @drips-wave

    Congratulations, @Deb-Auth! 🎉 Your application was accepted by the repo's maintainers, and the issue is due on August 31, 2026.

    🧑‍💻 @Deb-Auth: Please resolve the issue such that the repo's maintainers have enough time to review your contribution before the due date. You'll earn Points for completing the issue on-time, which will make you eligible for a share of the Stellar Wave Program's reward pool.

    Warning

    When opening a PR, please link it to this issue to ensure it gets tracked accurately. Points are awarded when this issue is marked as completed by the maintainer.

    🤠 Repo maintainers: Please keep an eye on the contributor's progress and review their work before the due date. You can manage this issue, including adjusting its complexity and points, here.

    🌊 Happy Wave 🌊

  5. added a commit that references this issue on Aug 31, 2026
    5ed1162
  6. github-actions commented on Aug 31, 2026

    @github-actions

    Closed by #597, merged into dev.

  7. drips-wave commented on Aug 31, 2026

    @drips-wave

    This issue has been completed by @Deb-Auth as part of the Stellar Wave Program's 8th Wave 🥳

    😎 @Deb-Auth: You earned 200 Points for completing this issue! After the current Wave ends, you'll be eligible for a percentage of the Wave's reward pool based on the percentage of total points you've earned. Learn more here. You can also Leave a review to share your experience working on this issue.

    🧑‍💻 Repo maintainers: How'd the contributor do? Leave a review to share your experience working with them.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

Stellar WaveIssues in the Stellar wave programdocumentationImprovements or additions to documentationdxtesting

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions