feat: notification service

This commit is contained in:
Ilia Denisov
2026-04-22 08:49:45 +02:00
committed by GitHub
parent 5b7593e6f6
commit 32dc29359a
135 changed files with 21828 additions and 130 deletions
@@ -0,0 +1,43 @@
package notification
import (
"path/filepath"
"testing"
"github.com/stretchr/testify/require"
)
var expectedNotificationUserEnrichmentDocumentationSnippets = []string{
"one trusted `User Service` HTTP enrichment client",
"user-targeted route enrichment during intent acceptance before durable write",
"`404 subject_not_found` from `User Service` is recorded under malformed-intent storage with `failure_code=recipient_not_found`",
"temporary `User Service` lookup failures stop the consumer before stream-offset advance",
"current implemented support is exactly one locale: `en`",
"no intermediate locale reduction is used in v1",
}
func TestNotificationUserEnrichmentDocsStayInSync(t *testing.T) {
t.Parallel()
readme := loadTextFile(t, "README.md")
flowsDoc := loadTextFile(t, filepath.Join("docs", "flows.md"))
docsIndex := loadTextFile(t, filepath.Join("docs", "README.md"))
architecture := loadTextFile(t, filepath.Join("..", "ARCHITECTURE.md"))
normalizedReadme := normalizeWhitespace(readme)
normalizedFlowsDoc := normalizeWhitespace(flowsDoc)
normalizedArchitecture := normalizeWhitespace(architecture)
require.Contains(t, docsIndex, "- [Main flows](flows.md)")
require.Contains(t, normalizedArchitecture, normalizeWhitespace("Acceptance of a user-targeted notification intent is complete only after every"))
require.Contains(t, normalizedArchitecture, normalizeWhitespace("unresolved user ids are treated as producer input defects"))
for _, snippet := range expectedNotificationUserEnrichmentDocumentationSnippets {
normalizedSnippet := normalizeWhitespace(snippet)
require.Contains(t, normalizedReadme, normalizedSnippet)
}
require.Contains(t, normalizedFlowsDoc, normalizeWhitespace("User-targeted routes are enriched before durable route write"))
require.Contains(t, normalizedFlowsDoc, normalizeWhitespace("supported resolved locale is exactly `en`"))
require.Contains(t, normalizedFlowsDoc, normalizeWhitespace("record malformed intent recipient_not_found"))
require.Contains(t, normalizedFlowsDoc, normalizeWhitespace("stop before stream-offset advance"))
}