Documentation
¶
Overview ¶
Package conformance contains executable contracts for the ports defined in internal/app. Every adapter must pass the suite for each port it implements; behavior questions are settled by adding cases here, never by adapter-specific convention.
Index ¶
- func RunAnswerCacheSuite(t *testing.T, factory func(t *testing.T) app.AnswerCache)
- func RunCollectionRepositorySuite(t *testing.T, factory func(t *testing.T) app.CollectionRepository)
- func RunDocumentRepositorySuite(t *testing.T, factory func(t *testing.T) app.DocumentRepository)
- func RunVectorIndexSuite(t *testing.T, factory func(t *testing.T) app.VectorIndex)
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func RunAnswerCacheSuite ¶
RunAnswerCacheSuite verifies the app.AnswerCache contract. The factory must return a fresh, empty cache per call. Times are passed explicitly (the store holds no clock), so these cases are deterministic.
func RunCollectionRepositorySuite ¶
func RunCollectionRepositorySuite(t *testing.T, factory func(t *testing.T) app.CollectionRepository)
RunCollectionRepositorySuite verifies the app.CollectionRepository contract. The factory must return a fresh, empty repository per call.
This suite covers only what the port can observe: Collection CRUD. The cross-aggregate cascade of Delete (removing the collection's documents and vectors) is orchestrated by the use case, which holds the DocumentRepository and VectorIndex; it is verified at that layer.
func RunDocumentRepositorySuite ¶
RunDocumentRepositorySuite verifies the app.DocumentRepository contract. The factory must return a fresh, empty repository per call.
The within-port cascade (deleting a Document deletes its Chunks) is covered here. The Chunks' vectors live in the VectorIndex; removing those is the use case's job and is verified at that layer.
func RunVectorIndexSuite ¶
RunVectorIndexSuite verifies the app.VectorIndex contract. The factory must return a fresh, empty index per call.
Types ¶
This section is empty.