50 lines
1.2 KiB
Go
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(), "...")
|
|
}
|