Skip to content

test(api): resolve #977 #972 #971 #968 — testing & observability hardening#1022

Open
vitalis200 wants to merge 1 commit into
solutions-plug:mainfrom
vitalis200:fix/testing-observability-977-972-971-968
Open

test(api): resolve #977 #972 #971 #968 — testing & observability hardening#1022
vitalis200 wants to merge 1 commit into
solutions-plug:mainfrom
vitalis200:fix/testing-observability-977-972-971-968

Conversation

@vitalis200

@vitalis200 vitalis200 commented Jun 28, 2026

Copy link
Copy Markdown
Contributor

Summary

closes #977** — Property-based tests for all validation functions (sanitize_string, validate_string) using proptest: covers empty input, over-max-length, all-whitespace collapse, null bytes, control characters, Unicode homographs, and valid pass-through. CI runs ≥1 000 cases per property via PROPTEST_CASES=1000.

closes #968OTEL_EXPORTER_OTLP_ENDPOINT is validated as a parseable URL at startup (fail-fast). A TCP connectivity check (2 s timeout) logs WARN if the collector is unreachable and increments otel_export_errors_total{reason="unreachable"}. Documented in TRACING.md.

Test plan

  • PROPTEST_CASES=1000 cargo test prop_ — all 7 property tests pass
  • make test-integration — starts compose stack, runs integration tests, tears down cleanly
  • cargo nextest run --rand-rng-seed=1 and --rand-rng-seed=2 produce identical results
  • Set OTEL_EXPORTER_OTLP_ENDPOINT=not-a-url — service exits at startup with a clear error
  • Set OTEL_EXPORTER_OTLP_ENDPOINT=http://unreachable:4317 — service starts, logs WARN, otel_export_errors_total increments

🤖 Generated with Claude Code

…ug#971 solutions-plug#968 — testing & observability hardening

- solutions-plug#977: add proptest property-based tests for all validation functions
  (empty, over-max-len, all-whitespace, null bytes, control chars, Unicode,
  valid inputs); CI runs 1000 cases per property via PROPTEST_CASES=1000

- solutions-plug#972: add transaction-rollback DB fixture (with_test_transaction) so each
  integration test is isolated; CI verifies order-independence with two
  different nextest random seeds

- solutions-plug#971: add docker-compose.test.yml (Postgres 15, Redis 7, Stellar RPC stub)
  with health checks; add Makefile targets (test-integration,
  test-integration-down); wire CI job api-integration-tests

- solutions-plug#968: validate OTEL_EXPORTER_OTLP_ENDPOINT as a parseable URL at startup
  (fail-fast on bad config); TCP connectivity check with 2 s timeout logs WARN
  if unreachable; otel_export_errors_total Prometheus counter tracks failures;
  document OTLP config in TRACING.md

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@drips-wave

drips-wave Bot commented Jun 28, 2026

Copy link
Copy Markdown

@vitalis200 Great news! 🎉 Based on an automated assessment of this PR, the linked Wave issue(s) no longer count against your application limits.

You can now already apply to more issues while waiting for a review of this PR. Keep up the great work! 🚀

Learn more about application limits

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

2 participants