SafeguardAI - Web Workflows & Data Pipeline Testing
Team-led development and testing of a financial data interpretation platform, with checks for UI state, report rendering, data cleaning, and failed-request fallbacks.
Web + data verification
- 18
- Vitest passed
- 16
- unittest passed
- Async UI & failure states
- References & report rendering
- Text & metadata cleaning
- Cypress: defined, not run
Project verification · 6 September 2026
Verified 6 September 2026
Test scope & results
Existing frontend and data-cleaning tests executed in an isolated source copy.
- Vitest
18 passed
Mocked frontend checks for chat, reports, data transformers, and evidence rendering.
- Python unittest
16 passed
Text cleaning, nested comments, filename metadata, and required fields.
- Cypress
13 defined / not run
Browser scenarios are excluded from the passing total.
Verification boundaries
- The full database, authentication, Kafka, and Ollama integration was not verified.
- No coverage percentage was measured. Vitest checks are not real-browser end-to-end tests.
Summary
Project context
Academic team project extending an existing platform with analysis and evidence-support workflows. Testing combines mocked frontend checks, controlled data fixtures, and browser scenarios.
Problem / goal
Missing data, inconsistent source text, and failed analysis requests could leave users with confusing screens or unreliable report content.
My role
Team lead with hands-on responsibility for technical implementation and testing.
My contributions
- Led technical implementation and testing while coordinating team documentation.
- Developed and validated frontend and data-cleaning tests for missing fields, malformed metadata, deduplication, and request failures.
- Used controlled news and social-data fixtures to verify text sanitization, JSON comments, and metadata extraction.
- Maintained Cypress scenarios for authentication, dashboard navigation, and form validation.
Technical approach
- Isolate UI dependencies with mocked requests and a constructed DOM to exercise asynchronous controls and error states.
- Use Python unittest fixtures to check HTML, URLs, emoji, whitespace, nested comments, and required fields.
- Separate unit-level verification from browser scenarios requiring the full backend and data services.
Key features
- Chat waiting states and local fallbacks
- Report rendering and reference deduplication
- Data normalization and malformed-input handling
- Cypress authentication and navigation scenarios
Impact / results
- 18 Vitest checks and 16 Python unittest checks passed on 6 September 2026: 34 verified tests in total.
- The frontend production build completed successfully.
- 13 existing Cypress scenarios were identified in source but not executed in this verification.
What I learned
- A graceful failure state is part of functional correctness for features that depend on several services.
- Mocked UI tests provide focused feedback; end-to-end verification requires the complete application environment.