ops_repo_replay_cleanup_test.go 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. package repository
  2. import (
  3. "reflect"
  4. "strings"
  5. "testing"
  6. "github.com/Wei-Shaw/sub2api/internal/service"
  7. )
  8. func TestOpsErrorLogInsertDoesNotPersistRequestReplayFields(t *testing.T) {
  9. disallowedColumns := []string{
  10. "request_body",
  11. "request_headers",
  12. "request_body_truncated",
  13. "request_body_bytes",
  14. "is_retryable",
  15. "retry_count",
  16. "resolved_retry_id",
  17. }
  18. insertSQL := strings.ToLower(insertOpsErrorLogSQL)
  19. for _, column := range disallowedColumns {
  20. if strings.Contains(insertSQL, column) {
  21. t.Fatalf("ops error log insert still references dropped replay column %q", column)
  22. }
  23. }
  24. inputType := reflect.TypeOf(service.OpsInsertErrorLogInput{})
  25. disallowedFields := []string{
  26. "RequestBodyJSON",
  27. "RequestBodyTruncated",
  28. "RequestBodyBytes",
  29. "RequestHeadersJSON",
  30. "IsRetryable",
  31. "RetryCount",
  32. "ResolvedRetryID",
  33. }
  34. for _, field := range disallowedFields {
  35. if _, ok := inputType.FieldByName(field); ok {
  36. t.Fatalf("OpsInsertErrorLogInput still carries replay field %q", field)
  37. }
  38. }
  39. }