Notification API Testing
Summary
Verified API coverage consists of one PowerShell smoke script and one manual request collection. There is no automated API test project, no contract test and no request-level assertion suite in a test framework.
Audience
Engineers, QA, architects, support and DevOps engineers.
Reference Content
The verified reference material for this topic is set out in the sections below.
Smoke script
microservices/scripts/smoke-notification.ps1 is the only automated artifact that exercises the HTTP surface. It boots the service from its build output and drives endpoints in sequence, asserting on responses.
Verified endpoints exercised:
| Endpoint | Covered |
|---|---|
GET /notification-templates with filters | Yes — both the active-only filter and the tenant-plus-key filter |
POST /notification-templates | Yes |
PUT /notification-templates/{id} | Yes |
POST /notification-templates/{id}/test | Yes |
POST /notifications/test/dispatch | Yes |
POST /notifications/test/publish | Yes |
GET /notifications/my | Yes — both the default and unread-only forms |
POST /notifications/{id}/read | Yes |
GET /notifications/{id} | Yes |
GET /notifications/{id}/attempts | Yes |
POST /notifications/{id}/retry | Yes |
GET /notifications/failed | Yes |
GET /notifications/processed/{eventId} | Yes |
GET /notifications/audit | Yes |
GET /notifications/stats | Yes |
Fifteen of the seventeen native endpoints are exercised. The two not covered by the script are the service-information root and the health endpoint.
Modes: the script runs a direct mode that drives events synchronously through the dispatch hook, and a broker mode that publishes onto the message bus so the hosted consumer round-trips the event. It can additionally exercise a gateway shadow route against a running or auto-started gateway.
Determinism: the forced-failure flag lets the script drive the failure and retry paths without depending on a real provider outage.
Prerequisites: a reachable PostgreSQL instance, with migrations applied automatically at startup, and for broker mode a reachable message broker.
Manual request collection
microservices/src/notification-service/notification-service.http is a hand-maintained request collection covering the service root, health, template list, template create, template test, both test hooks, the inbox, read, attempts, retry, failed queue, audit and statistics.
It uses a host variable and placeholder identifiers rather than captured values, so it contains no credentials and no real data. It carries no assertions — it is a developer convenience for manual exercise, not automated coverage.
Coverage gaps in the implemented tests
Even within the smoke script, the following are not asserted:
- No negative-path assertions for the four guard clauses — the
400responses are not exercised. - No assertion on
404responses for absent identifiers. - No assertion on the
502publish-failure path. - No assertion on
201semantics or the location header from template create. - No assertion on page-size clamping at either boundary.
- No cross-tenant isolation assertion on any endpoint.
- No assertion on the correlation response header.
Recommended coverage (not implemented)
The following do not exist in the reviewed source and are recorded as recommendations only.
- An automated API test project using an in-memory or containerized host, asserting status codes and response shapes per endpoint.
- Negative-path tests for every guard clause and every not-found path.
- Contract tests pinning the response shape of each endpoint, which would also surface the entity-serialization coupling.
- Tenant-isolation tests asserting that a caller naming one tenant cannot read another's data — these would currently fail on the unscoped endpoints by design.
- Authorization tests, which cannot be written until enforcement exists.
- Gateway routing tests asserting which backend a toggled path reaches.
Classification
Partial — smoke coverage is Implemented; automated API testing is Not implemented.
Requires confirmation
Whether the smoke script runs in continuous integration, and who owns API test coverage, require confirmation.
Related Articles
See Also
Keywords
- Notification API
- API Testing
- Draft API documentation
Source References
microservices/scripts/smoke-notification.ps1microservices/src/notification-service/notification-service.httpmicroservices/src/notification-service/Api/NotificationEndpoints.cs
Revision Information
- Status: Draft
- Last reviewed: 2026-07-21
- Review cycle: Quarterly