DEV Community

Kurnia Sandi
Kurnia Sandi

Posted on

I Tested TestSprite on a Real Project — Here's What AI Testing Actually Gets Right (and Wrong) About Locale

If you're building with AI coding assistants — Cursor, Claude Code, Windsurf — you've probably noticed the same gap I did: the code comes out fast, but verification is still painfully manual. You run the app, click around, squint at edge cases. TestSprite promises to close that loop autonomously. I put it through its paces on a real e-commerce project, and I want to give you an honest, developer-to-developer breakdown — especially around something most reviews skip: locale handling.

What TestSprite Actually Is

TestSprite is an AI-native testing agent that integrates into your IDE via MCP (Model Context Protocol). The pitch is simple: point it at your project with one prompt, and it will:

Scan your codebase and generate a normalized PRD

Produce a complete test plan (frontend + backend)

Spin up an ephemeral cloud sandbox and run the tests

Report bugs with root-cause analysis and fix suggestions

Output reusable Python + Playwright test code for CI/CD

It supports React, Vue, Angular, Svelte, Next.js, Vite on the frontend, and API/integration testing on the backend. IDE support covers Cursor, VS Code, Claude Code, Windsurf, Trae, and GitHub Copilot.

The Project I Used

I tested TestSprite on a demo Indonesian e-commerce app — a product catalog with a shopping cart, built in HTML/JavaScript. Nothing exotic, but specifically designed to stress-test locale behavior:

Prices formatted in Indonesian Rupiah using toLocaleString('id-ID') → Rp 15.000.000 (periods as thousand separators, not commas)

Dates rendered with toLocaleDateString('id-ID', { weekday: 'long', ... }) → Minggu, 3 Mei 2026

Full Indonesian-language UI labels and button text

Setup: Genuinely Fast

npx @testsprite/testsprite-mcp@latest

Add the config to your IDE (VS Code example):

{
"mcpServers": {
"TestSprite": {
"command": "npx",
"args": ["@testsprite/testsprite-mcp@latest"],
"env": { "API_KEY": "your-api-key" }
}
}
}

One prompt — Help me test this project with TestSprite — kicks off the full pipeline. No writing test cases. No framework boilerplate. Just results.

The 8 core MCP tools chain automatically:

Tool

What It Does

testsprite_bootstrap_tests

Init environment, detect project type

testsprite_generate_code_summary

Architectural scan, outputs code_summary.json

testsprite_generate_standardized_prd

Infers product requirements from code

testsprite_generate_frontend_test_plan

Builds UI test scenarios

(+ 4 more)

Execution, reporting, patching

What came out: 15+ test cases covering authentication flows, cart state, error handling, and edge cases I genuinely would have missed writing tests manually.


Locale Handling: 2 Critical Observations

This is where I'll give you something most TestSprite reviews don't — a focused look at how the AI handles non-English, non-US-format data.

Observation 1: Currency Format — Partially Correct, One Blind Spot

The project uses toLocaleString('id-ID') to render Rp 15.000.000 — periods as thousand separators, opposite of what en-US expects.

What TestSprite got right: It didn't hardcode 15,000,000 in assertions. The generated tests validated that the price element was visible and contained a non-empty value — format-agnostic enough to not immediately break.

What TestSprite missed: When generating tests for quantity input fields, some assertions assumed plain integer input (1000) rather than locale-formatted input (1.000). In Indonesian UX, users routinely type formatted numbers into form fields. This means TestSprite would pass a test on a form that silently rejects 1.000 as invalid input — a real, shippable bug that goes undetected.

My fix: I added a custom test instruction: "Validate that numeric input fields accept both plain integers and period-separated thousands format (e.g., both 1000 and 1.000)." TestSprite regenerated the relevant tests correctly. The hook is there — you just have to know to pull it.

Observation 2: Date Localization — Pragmatic, But Too Shallow

The app displays dates like Minggu, 3 Mei 2026 (Indonesian: Sunday, 3 May 2026). Here's what TestSprite generated for the date element:

Generated Playwright test

expect(page.locator("#currentDate")).to_be_visible()
expect(page.locator("#currentDate")).not_to_be_empty()

It checks existence. It does not verify the format.

That means if your i18n config silently falls back to en-US — displaying Sunday, May 3, 2026 instead of Minggu, 3 Mei 2026 — TestSprite's test passes. The bug ships.

This is philosophically reasonable behavior (tests shouldn't be brittle to locale differences in CI environments), but it creates a real gap for apps that have explicit locale requirements. For any project where Indonesian, Arabic, Japanese, or RTL formatting is a feature spec, you need to write explicit locale assertions yourself.

My recommendation: Add a test instruction like: "Assert that the date element contains Indonesian month names (Januari, Februari, Maret, ..., Desember)". TestSprite handles this correctly when instructed — it just doesn't infer it automatically.

What It Does Really Well

Beyond locale, here's where TestSprite clearly earns its place:

Edge case coverage: It caught a missing empty-cart guard on checkout that I hadn't tested manually. The alert logic was there; the test wasn't.

Auto-generated Playwright code: Production-ready Python test files, ready for GitHub Actions or GitLab CI. Zero manual scripting.

No QA expertise required: For small teams (common in Indonesian startups) without a dedicated QA engineer, this is the difference between zero automated coverage and 90%+ coverage.

Community Edition is free: 100,000+ member community, free tier available — low barrier to try.

Honest Comparison

Manual Testing

TestSprite

Initial test setup

2–4 hours

~10 minutes

Edge case coverage

Depends on experience

Comprehensive by default

Locale-specific assertions

Manual, explicit

Needs custom instructions

CI/CD output

You write it

Auto-generated Playwright

Cost

Engineer time

Free tier available

Final Verdict

TestSprite is genuinely impressive at what it claims: autonomous test generation from a codebase with minimal setup. The 42% → 93% feature delivery improvement claim isn't outlandish — I can see the coverage delta.

For developers building globally: locale testing is a first-class citizen in your product, not an afterthought. TestSprite's AI will not automatically validate currency formats, date localization, non-ASCII input, or timezone display unless you tell it to. The framework to do it is there and works well once instructed — but the default behavior is locale-neutral, not locale-aware.
That's not a dealbreaker. It's a workflow note: add locale-specific custom instructions before your first test run, and TestSprite will produce exactly what you need.

Rating: 4.5 / 5

Tested on: demo Indonesian e-commerce app (HTML/JS), TestSprite MCP Server via VS Code, May 2026.Try TestSprite free: testsprite.com

Top comments (0)