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