Files
Enterprise-Knowledge-Base/internal/application/service/datasource_service_test.go
T

50 lines
1.2 KiB
Go

package service
import (
"strings"
"testing"
"github.com/Tencent/WeKnora/internal/types"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
)
func TestAllFetchedItemsFailedError(t *testing.T) {
err := allFetchedItemsFailedError(&types.SyncResult{
Total: 2,
Failed: 2,
Errors: []string{"doc one: export failed"},
})
require.Error(t, err)
assert.Contains(t, err.Error(), "all fetched items failed during sync (2/2)")
assert.Contains(t, err.Error(), "doc one: export failed")
}
func TestAllFetchedItemsFailedErrorIgnoresPartialFailure(t *testing.T) {
err := allFetchedItemsFailedError(&types.SyncResult{
Total: 3,
Created: 1,
Failed: 2,
})
require.NoError(t, err)
}
func TestAllFetchedItemsFailedErrorIgnoresSkippedItems(t *testing.T) {
err := allFetchedItemsFailedError(&types.SyncResult{
Total: 3,
Skipped: 3,
})
require.NoError(t, err)
}
func TestAllFetchedItemsFailedErrorTruncatesLongDetail(t *testing.T) {
err := allFetchedItemsFailedError(&types.SyncResult{
Total: 1,
Failed: 1,
Errors: []string{strings.Repeat("x", 600)},
})
require.Error(t, err)
assert.LessOrEqual(t, len(err.Error()), 560)
assert.Contains(t, err.Error(), "...")
}