Skip to content

feat(gateway): add E2E integration smoke test for all services#73

Open
devin-ai-integration[bot] wants to merge 1 commit into
mainfrom
devin/gateway-e2e
Open

feat(gateway): add E2E integration smoke test for all services#73
devin-ai-integration[bot] wants to merge 1 commit into
mainfrom
devin/gateway-e2e

Conversation

@devin-ai-integration

@devin-ai-integration devin-ai-integration Bot commented Jun 26, 2026

Copy link
Copy Markdown
Contributor

Summary

Adds tests/gateway-e2e-smoke.sh — an idempotent, CI-ready E2E smoke test that validates all 5 services are reachable through the YARP API Gateway.

Test flow:

  1. docker compose up --build -d (skippable via SKIP_COMPOSE=1)
  2. Polls /healthz on each service (120s timeout)
  3. Asserts through the gateway (localhost:5000):
    • Gateway health: GET /healthz → 200
    • Route reachability: GET /api/{service_plural}/api/{controller} → 200 or 401 for all 5 services
    • Auth enforcement: expects 401 without Bearer token (gracefully SKIPs when services lack auth)
    • Identity flow: POST .../register + POST .../login → extracts JWT (SKIPs if scaffold)
    • Authenticated CRUD: GET with Authorization: Bearer <token> → 200 (SKIPs if no token)
    • Header forwarding: sends bogus token, confirms 401 or SKIPs for scaffolds
  4. docker compose down -v (cleanup trap)

Current scaffold state: 6 PASS, 0 FAIL, 11 SKIP — auth-dependent checks are SKIP (not FAIL) and will auto-activate when services add JWT middleware + [Authorize].

Bug fix included: All 5 service .csproj files had broken ProjectReference paths to Shared/:

- <ProjectReference Include="..\..\Shared\Shared.Contracts\..." />
+ <ProjectReference Include="..\..\..\Shared\Shared.Contracts\..." />

../../Shared resolved to src/Services/Shared/ (nonexistent); ../../../Shared correctly resolves to src/Shared/. This fix is required for docker compose --build to succeed.

Link to Devin session: https://partner-workshops.devinenterprise.com/sessions/16aec171581348c9b7db944e31f8df8c
Requested by: @mbatchelor81


Open in Devin Review

- Add tests/gateway-e2e-smoke.sh that validates:
  - Gateway health (GET /healthz -> 200)
  - Route reachability for all 5 services through YARP proxy
  - Auth enforcement (401 without token, skipped for scaffolds)
  - Identity register/login flow (skipped for scaffolds)
  - Authenticated CRUD through gateway (skipped for scaffolds)
  - Authorization header forwarding verification

- Fix broken Shared project reference paths in all service .csproj
  files (../../Shared -> ../../../Shared) so docker builds succeed

The test is idempotent, CI-ready, and gracefully handles scaffold
services by marking auth-dependent checks as SKIP rather than FAIL.
@mbatchelor81 mbatchelor81 self-assigned this Jun 26, 2026
@devin-ai-integration

Copy link
Copy Markdown
Contributor Author

🤖 Devin AI Engineer

I'll be helping with this pull request! Here's what you should know:

✅ I will automatically:

  • Address comments on this PR. Add '(aside)' to your comment to have me ignore it.
  • Look at CI failures and help fix them

Note: I can only respond to comments from users who have write access to this repository.

⚙️ Control Options:

  • Disable automatic comment, CI, and merge conflict monitoring

@devin-ai-integration devin-ai-integration Bot left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

✅ Devin Review: No Issues Found

Devin Review analyzed this PR and found no bugs or issues to report.

Open in Devin Review

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant