feat: notification service
This commit is contained in:
@@ -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"))
|
||||
}
|
||||
Reference in New Issue
Block a user