32 lines
1.0 KiB
Go
32 lines
1.0 KiB
Go
package privacy
|
|
|
|
import (
|
|
"context"
|
|
"errors"
|
|
"strings"
|
|
"testing"
|
|
)
|
|
|
|
func TestDeleteProcessorValidationAndSafeErrors(t *testing.T) {
|
|
if _, err := NewAccessProcessor(nil); err == nil {
|
|
t.Fatal("nil access database was accepted")
|
|
}
|
|
if _, err := NewDeleteProcessor(nil, nil, nil); err == nil {
|
|
t.Fatal("invalid deletion dependencies were accepted")
|
|
}
|
|
processor := &DeleteProcessor{}
|
|
if _, _, err := processor.executeSubtask(context.Background(), deletionRequest{}, "unknown"); err == nil || !strings.Contains(err.Error(), "unsupported") {
|
|
t.Fatalf("unsupported subsystem error=%v", err)
|
|
}
|
|
if got := safeDeletionError(nil); got != "" {
|
|
t.Fatalf("nil error text=%q", got)
|
|
}
|
|
if got := safeDeletionError(errors.New("temporary object-store failure")); got != "temporary object-store failure" {
|
|
t.Fatalf("short safe error=%q", got)
|
|
}
|
|
longText := strings.Repeat("x", 600)
|
|
if got := safeDeletionError(errors.New(longText)); len(got) != 450 || strings.Contains(got, "secret") {
|
|
t.Fatalf("truncated safe error length=%d", len(got))
|
|
}
|
|
}
|