Move chunks into the canonical source model
This commit is contained in:
@@ -222,6 +222,42 @@ func TestDigestDocumentIsDeterministicAndIncludesUnitReference(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
func TestDigestChunkIsDeterministicAndIncludesReference(t *testing.T) {
|
||||
doc := validDocument()
|
||||
chunk := Chunk{
|
||||
ID: "chunk-1",
|
||||
SourceID: doc.ID,
|
||||
Index: 0,
|
||||
Ref: SourceRef{SourceID: doc.ID, StartUnitID: 1, EndUnitID: 2},
|
||||
Content: []byte("chunk content"),
|
||||
MediaType: "text/plain",
|
||||
Units: doc.Units,
|
||||
Metadata: map[string]any{"second": "value", "first": true},
|
||||
}
|
||||
first, err := DigestChunk(chunk)
|
||||
if err != nil {
|
||||
t.Fatalf("DigestChunk() error = %v, want nil", err)
|
||||
}
|
||||
|
||||
chunk.Metadata = map[string]any{"first": true, "second": "value"}
|
||||
second, err := DigestChunk(chunk)
|
||||
if err != nil {
|
||||
t.Fatalf("DigestChunk(reordered metadata) error = %v, want nil", err)
|
||||
}
|
||||
if first != second {
|
||||
t.Fatalf("digests = %q and %q, want deterministic map ordering", first, second)
|
||||
}
|
||||
|
||||
chunk.Ref.EndUnitID = 1
|
||||
changed, err := DigestChunk(chunk)
|
||||
if err != nil {
|
||||
t.Fatalf("DigestChunk(changed ref) error = %v, want nil", err)
|
||||
}
|
||||
if first == changed {
|
||||
t.Fatalf("digest = %q after reference change, want different digest", changed)
|
||||
}
|
||||
}
|
||||
|
||||
func TestValidateRefValid(t *testing.T) {
|
||||
doc := validDocument()
|
||||
ref := SourceRef{
|
||||
|
||||
Reference in New Issue
Block a user