140 lines
4.9 KiB
Go
Generated
140 lines
4.9 KiB
Go
Generated
// This file is auto-generated by alef — DO NOT EDIT.
|
|
// alef:hash:4e15143f4af1ae8bafbdb1506ef057da924484c66a19483966333558ad437e75
|
|
// To regenerate: alef generate
|
|
// To verify freshness: alef verify --exit-code
|
|
// Issues & docs: https://github.com/kreuzberg-dev/alef
|
|
|
|
// E2e tests for category: batch
|
|
package e2e_test
|
|
|
|
import (
|
|
"encoding/json"
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
|
|
kreuzberg "github.com/kreuzberg-dev/kreuzberg/v5"
|
|
)
|
|
|
|
func Test_BatchBytesInvalidMime(t *testing.T) {
|
|
// batch_extract_bytes_sync invalid MIME
|
|
var items []kreuzberg.BatchBytesItem
|
|
if err := json.Unmarshal([]byte(`[{"content":"SGVsbG8=","mime_type":"application/x-nonexistent"}]`), &items); err != nil {
|
|
t.Fatalf("config parse failed: %v", err)
|
|
}
|
|
_, err := kreuzberg.BatchExtractBytesSync(items, kreuzberg.ExtractionConfig{})
|
|
if err != nil {
|
|
t.Fatalf("call failed: %v", err)
|
|
}
|
|
}
|
|
|
|
func Test_BatchExtractBytesHappy(t *testing.T) {
|
|
// batch_extract_bytes: happy path with mixed inputs
|
|
var items []kreuzberg.BatchBytesItem
|
|
if err := json.Unmarshal([]byte(`[{"content":"SGVsbG8sIHdvcmxkIQ==","mime_type":"text/plain"},{"content":"PGh0bWw+PGJvZHk+VGVzdDwvYm9keT48L2h0bWw+","mime_type":"text/html"}]`), &items); err != nil {
|
|
t.Fatalf("config parse failed: %v", err)
|
|
}
|
|
result, err := kreuzberg.BatchExtractBytes(items, kreuzberg.ExtractionConfig{})
|
|
if err != nil {
|
|
t.Fatalf("call failed: %v", err)
|
|
}
|
|
assert.GreaterOrEqual(t, len(result), 1, "expected at least 1 elements")
|
|
}
|
|
|
|
func Test_BatchExtractBytesMixedFormat(t *testing.T) {
|
|
// batch_extract_bytes: handles unsupported MIME gracefully
|
|
var items []kreuzberg.BatchBytesItem
|
|
if err := json.Unmarshal([]byte(`[{"content":"UERGIHBsYWNlaG9sZGVy","mime_type":"application/x-unknown"}]`), &items); err != nil {
|
|
t.Fatalf("config parse failed: %v", err)
|
|
}
|
|
_, err := kreuzberg.BatchExtractBytes(items, kreuzberg.ExtractionConfig{})
|
|
if err != nil {
|
|
t.Fatalf("call failed: %v", err)
|
|
}
|
|
}
|
|
|
|
func Test_BatchExtractBytesSyncEmptyList(t *testing.T) {
|
|
// batch_extract_bytes_sync: empty batch
|
|
var items []kreuzberg.BatchBytesItem
|
|
if err := json.Unmarshal([]byte(`[]`), &items); err != nil {
|
|
t.Fatalf("config parse failed: %v", err)
|
|
}
|
|
result, err := kreuzberg.BatchExtractBytesSync(items, kreuzberg.ExtractionConfig{})
|
|
if err != nil {
|
|
t.Fatalf("call failed: %v", err)
|
|
}
|
|
assert.Equal(t, len(result), 0, "expected exactly 0 elements")
|
|
}
|
|
|
|
func Test_BatchExtractBytesSyncInvalidMime(t *testing.T) {
|
|
// batch_extract_bytes_sync: unsupported MIME
|
|
var items []kreuzberg.BatchBytesItem
|
|
if err := json.Unmarshal([]byte(`[{"content":"ZGF0YQ==","mime_type":"application/x-unknown"}]`), &items); err != nil {
|
|
t.Fatalf("config parse failed: %v", err)
|
|
}
|
|
_, err := kreuzberg.BatchExtractBytesSync(items, kreuzberg.ExtractionConfig{})
|
|
if err != nil {
|
|
t.Fatalf("call failed: %v", err)
|
|
}
|
|
}
|
|
|
|
func Test_BatchFileAsyncBasic(t *testing.T) {
|
|
// Extract text from multiple files asynchronously
|
|
var paths []kreuzberg.BatchFileItem
|
|
if err := json.Unmarshal([]byte(`[{"path":"pdf/fake_memo.pdf"},{"path":"text/fake_text.txt"}]`), &paths); err != nil {
|
|
t.Fatalf("config parse failed: %v", err)
|
|
}
|
|
_, err := kreuzberg.BatchExtractFiles(paths, kreuzberg.ExtractionConfig{})
|
|
if err != nil {
|
|
t.Fatalf("call failed: %v", err)
|
|
}
|
|
}
|
|
|
|
func Test_BatchFileAsyncNotFound(t *testing.T) {
|
|
// batch_extract_file async nonexistent
|
|
var paths []kreuzberg.BatchFileItem
|
|
if err := json.Unmarshal([]byte(`[{"path":"/nonexistent/a.pdf"}]`), &paths); err != nil {
|
|
t.Fatalf("config parse failed: %v", err)
|
|
}
|
|
_, err := kreuzberg.BatchExtractFiles(paths, kreuzberg.ExtractionConfig{})
|
|
if err != nil {
|
|
t.Fatalf("call failed: %v", err)
|
|
}
|
|
}
|
|
|
|
func Test_BatchFileNotFound(t *testing.T) {
|
|
// batch_extract_file_sync nonexistent
|
|
var paths []kreuzberg.BatchFileItem
|
|
if err := json.Unmarshal([]byte(`[{"path":"/nonexistent/a.pdf"},{"path":"/nonexistent/b.txt"}]`), &paths); err != nil {
|
|
t.Fatalf("config parse failed: %v", err)
|
|
}
|
|
_, err := kreuzberg.BatchExtractFilesSync(paths, kreuzberg.ExtractionConfig{})
|
|
if err != nil {
|
|
t.Fatalf("call failed: %v", err)
|
|
}
|
|
}
|
|
|
|
func Test_BatchFilePartial(t *testing.T) {
|
|
// batch_extract_file_sync mixed
|
|
var paths []kreuzberg.BatchFileItem
|
|
if err := json.Unmarshal([]byte(`[{"path":"text/plain.txt"},{"path":"/nonexistent/missing.pdf"}]`), &paths); err != nil {
|
|
t.Fatalf("config parse failed: %v", err)
|
|
}
|
|
_, err := kreuzberg.BatchExtractFilesSync(paths, kreuzberg.ExtractionConfig{})
|
|
if err != nil {
|
|
t.Fatalf("call failed: %v", err)
|
|
}
|
|
}
|
|
|
|
func Test_BatchFileSyncBasic(t *testing.T) {
|
|
// Extract text from multiple files synchronously
|
|
var paths []kreuzberg.BatchFileItem
|
|
if err := json.Unmarshal([]byte(`[{"path":"pdf/fake_memo.pdf"},{"path":"text/fake_text.txt"}]`), &paths); err != nil {
|
|
t.Fatalf("config parse failed: %v", err)
|
|
}
|
|
_, err := kreuzberg.BatchExtractFilesSync(paths, kreuzberg.ExtractionConfig{})
|
|
if err != nil {
|
|
t.Fatalf("call failed: %v", err)
|
|
}
|
|
}
|