mirror of
https://github.com/infiniflow/ragflow.git
synced 2026-07-25 18:03:29 +08:00
### Summary Refactor dataset.go document.do file.go file2document.go in internal/service.
102 lines
1.9 KiB
Go
102 lines
1.9 KiB
Go
package dataset
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"ragflow/internal/entity"
|
|
)
|
|
|
|
func TestExtractUniqueFileIDs(t *testing.T) {
|
|
f1 := "f1"
|
|
f2 := "f2"
|
|
empty := ""
|
|
|
|
tests := []struct {
|
|
name string
|
|
mappings []entity.File2Document
|
|
want []string
|
|
}{
|
|
{
|
|
name: "empty",
|
|
mappings: nil,
|
|
want: nil,
|
|
},
|
|
{
|
|
name: "single file",
|
|
mappings: []entity.File2Document{
|
|
{FileID: &f1},
|
|
},
|
|
want: []string{"f1"},
|
|
},
|
|
{
|
|
name: "deduplicates duplicate file IDs",
|
|
mappings: []entity.File2Document{
|
|
{FileID: &f1},
|
|
{FileID: &f1},
|
|
{FileID: &f2},
|
|
},
|
|
want: []string{"f1", "f2"},
|
|
},
|
|
{
|
|
name: "skips nil FileID",
|
|
mappings: []entity.File2Document{
|
|
{FileID: nil},
|
|
{FileID: &f1},
|
|
},
|
|
want: []string{"f1"},
|
|
},
|
|
{
|
|
name: "skips empty FileID",
|
|
mappings: []entity.File2Document{
|
|
{FileID: &empty},
|
|
{FileID: &f1},
|
|
},
|
|
want: []string{"f1"},
|
|
},
|
|
{
|
|
name: "all nil or empty returns empty",
|
|
mappings: []entity.File2Document{
|
|
{FileID: nil},
|
|
{FileID: &empty},
|
|
},
|
|
want: nil,
|
|
},
|
|
}
|
|
|
|
for _, tt := range tests {
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
got := extractUniqueFileIDs(tt.mappings)
|
|
if len(got) != len(tt.want) {
|
|
t.Fatalf("len = %d, want %d (got %v, want %v)", len(got), len(tt.want), got, tt.want)
|
|
}
|
|
for i := range got {
|
|
if got[i] != tt.want[i] {
|
|
t.Fatalf("got[%d] = %q, want %q", i, got[i], tt.want[i])
|
|
}
|
|
}
|
|
})
|
|
}
|
|
}
|
|
|
|
func TestExtractDocIDs(t *testing.T) {
|
|
docs := []entity.Document{
|
|
{ID: "d1"},
|
|
{ID: "d2"},
|
|
{ID: "d3"},
|
|
}
|
|
got := extractDocIDs(docs)
|
|
want := []string{"d1", "d2", "d3"}
|
|
if len(got) != len(want) {
|
|
t.Fatalf("len = %d, want %d", len(got), len(want))
|
|
}
|
|
for i := range got {
|
|
if got[i] != want[i] {
|
|
t.Fatalf("got[%d] = %q, want %q", i, got[i], want[i])
|
|
}
|
|
}
|
|
|
|
if got := extractDocIDs(nil); len(got) != 0 {
|
|
t.Fatalf("nil input: got %v, want empty", got)
|
|
}
|
|
}
|