Files
fil/e2e/go/batch_test.go
Henrik Jess Nielsen b4c07d3693
All checks were successful
Deploy fil (kreuzberg) / deploy (push) Successful in 49s
Nomad changes
2026-06-01 23:40:55 +02:00

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)
}
}