Skip to content

[CI]: Add full-stack Docker Compose smoke tests through nginx #25

Description

@DenizAltunkapan

Problem

Each service repo tests itself in isolation, but nothing tests the stack the way a real user actually reaches it, through nginx. A change can pass every individual CI job and still break in production because of something only visible at the integration layer: a wrong nginx path, a missing volume, a wrong service hostname, broken CORS, a broken WebSocket proxy.

#19 is a concrete example already sitting in this repo: the backend correctly serves profile pictures, but nginx never routes /uploads to it, so they never load. Nothing in CI today would have caught that, and nothing currently would catch the next one like it.

Proposed scope

  • add a CI workflow in this repo that brings up the full stack with docker compose up, the same way it runs in production
  • wait for all services to report healthy
  • run HTTP checks against the stack through nginx, not directly against individual service ports, so routing and proxy config are actually exercised
  • cover at minimum: frontend loads, login works, an authenticated backend call succeeds, the Cloud API responds, a file can be uploaded and downloaded, the WebSocket handshake succeeds, and a volume actually persists data across a container restart
  • tear the stack down at the end regardless of outcome

Explicitly not part of this

Replacing the existing per-service unit and integration tests. This is specifically about catching the class of bug that only shows up when the services are wired together behind nginx, not about testing business logic that is already covered elsewhere.

Acceptance criteria

Activity

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions