3.7 KiB
3.7 KiB
Weeks 2 & 3: Data & Geospatial - Testing Guide
Components Built
Week 2: Data Ingestion & Orchestration
-
Data Validation (
src/lib/data/dataValidator.ts)- Zod schemas for all data types
- City targets, competitors, generic data
- Generation jobs, geospatial campaigns
-
CSV/JSON Ingestion (
src/pages/api/god/data/ingest.ts)- Papaparse integration
- Bulk INSERT in transactions
- Column mapping
- Validate-only mode
-
Pool Statistics (
src/pages/api/god/pool/stats.ts)- Connection monitoring
- Saturation percentage
- Health recommendations
Week 3: Geospatial & Intelligence
-
Geospatial Launcher (
src/pages/api/god/geo/launch-campaign.ts)- Turf.js point generation
- Density-based sampling
- BullMQ addBulk integration
-
Shim Preview (
src/pages/api/god/shim/preview.ts)- SQL dry-run translation
- Directus query preview
-
Prompt Sandbox (
src/pages/api/intelligence/prompts/test.ts)- Cost estimation
- Batch projections
- Mock LLM responses
-
Spintax Validator (
src/pages/api/intelligence/spintax/validate.ts)- Syntax checking
- Sample generation
- Error detection
Testing Checklist
Test 1: CSV Ingestion (1000 rows)
curl -X POST http://localhost:4321/api/god/data/ingest \
-H "X-God-Token: YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"format": "csv",
"tableName": "geo_locations",
"data": "city_name,state,lat,lng\nAustin,TX,30.2672,-97.7431\nDallas,TX,32.7767,-96.7970",
"validateOnly": false
}'
Expected: Inserts 2 cities into geo_locations
Test 2: Pool Statistics
curl http://localhost:4321/api/god/pool/stats \
-H "X-God-Token: YOUR_TOKEN"
Expected: Returns total/idle/waiting connections + saturation %
Test 3: Geospatial Campaign Launch
curl -X POST http://localhost:4321/api/god/geo/launch-campaign \
-H "X-God-Token: YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"boundary": {
"type": "Polygon",
"coordinates": [[
[-97.74, 30.27],
[-97.74, 30.40],
[-97.54, 30.40],
[-97.54, 30.27],
[-97.74, 30.27]
]]
},
"campaign_type": "local_article",
"density": "medium",
"site_id": "YOUR_SITE_UUID"
}'
Expected: Generates ~50 points, inserts to database, queues jobs
Test 4: Prompt Cost Estimation
curl -X POST http://localhost:4321/api/intelligence/prompts/test \
-H "X-God-Token: YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"prompt": "Write about {topic} in {city}",
"variables": {"topic": "restaurants", "city": "Austin"},
"model": "gpt-4",
"max_tokens": 1000
}'
Expected: Returns mock response + cost for 100/1k/10k/100k batches
Test 5: Spintax Validation
curl -X POST http://localhost:4321/api/intelligence/spintax/validate \
-H "X-God-Token: YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"pattern": "{Hello|Hi|Hey} {world|friend}!"
}'
Expected: valid=true, 5 sample variations
Test 6: Invalid Spintax
curl -X POST http://localhost:4321/api/intelligence/spintax/validate \
-H "X-God-Token: YOUR_TOKEN"
\
-H "Content-Type: application/json" \
-d '{
"pattern": "{Hello|Hi} {world"
}'
Expected: valid=false, errors array with unclosed_brace
Success Criteria
- ✅ CSV with 1000+ rows ingests in <3 seconds
- ✅ Pool stats shows accurate saturation
- ✅ Geo campaign generates points inside boundary
- ✅ Cost estimates prevent expensive mistakes
- ✅ Spintax validator catches syntax errors