Tests

Test every feature before it ships.

Faundr tests your app across real-world scenarios (an empty cart, a coupon used twice, a declined payment) to catch what breaks before your users do. When something fails, your AI fixes it.

What you avoid

Where apps usually break. In the cases nobody tested by hand.

  • Works for you. Breaks for your users.

    You tested with one product in the cart. Then a customer shows up with an empty cart, uses a coupon twice or spends exactly $100. Nobody tested those cases.

    Faundr checks

    • Empty, error and edge cases
    • Expected result written by hand, up front
    • Tests that use the app like a real person
  • The stuff that matters has no tests.

    There’s a test for the button but none for payments. Nobody knows which parts of the app are covered until one breaks.

    Faundr checks

    • Features ranked, must-not-break ones first
    • A warning when AI changes go untested
    • A warning when a test quietly disappears
  • Tests that pass without testing anything.

    AI sometimes writes tests that always pass: they call the function and never check the result. Your dashboard goes green, and the bug ships.

    Faundr checks

    • Bugs planted on purpose to see if tests catch them
    • Tests with no assertions
    • Skipped or forgotten tests
Every scenario

Every function, tested every way. Find exactly where it breaks.

Even a simple rule like free shipping over $100 has several scenarios: above, below, exactly at the limit, empty cart. Faundr shows which ones no test covers, and your AI writes the missing test.

Free shipping over $100

Exactly $100

Should also ship free, but no test checks this amount. If the AI changes the rule by accident, nobody notices.

2 of 4

scenarios for this rule covered by tests

/faundr:tests T-6Writes a test for this scenario

How it works.It plants small bugs in your code on purpose, like changing 100 to 101, and checks whether any test catches them.

Only what changed.Checks the code your AI touched this session. It takes minutes and runs when you ask.

Clears itself.Once a new test covers the scenario, it drops off the list.

Your AI writes tests. Faundr makes sure they cover what matters. Every result is saved.

On its own, an AI agent tests what you ask for, the results vanish in the terminal, and whatever nobody thought to test stays untested. With Faundr, you see what’s covered and what’s missing.

AI agent aloneWith Faundr
Tests passingLooks like you’re good.Shows which scenarios no test covers.
What can’t breakNobody knows if it’s tested.Features ranked, most critical first.
What the AI changedNo idea if it’s tested.A warning when a change has no test.
A failing testThe AI weakens the test until it passes.Keeps the test intact and finds out whether the bug is in the test or the app.
New AI-written testCan pass without checking anything.Every test has to fail once before it’s trusted.
A test that fails at randomEveryone ignores it.Flagged as flaky and quarantined.
A test deleted by accidentNobody notices.A warning for any area that lost coverage.
Tests hitting a real databaseThe test runs against it and changes real data.Faundr waits for your OK first.
How it works

From zero to fully tested. Start today, even with zero tests.

Tests run only when you ask. Running and checking use zero AI; only writing tests uses your AI plan.

  1. First

    What can’t break.

    Your AI asks what matters most in your app: payments, sign-up, the coupon.

  2. Then

    One test per scenario.

    Writes tests one at a time, covering empty, error and edge cases, and watches each one fail before trusting it.

  3. Every change

    Run and record.

    Tests run when you ask, and every result lands on your dashboard, test by test.

  4. Going further

    Catches the missed scenario.

    Spots the scenario in your latest changes that has no test, then writes it.

From scenario to test

The missing test, written for you. Each one proves it catches the bug.

Each untested scenario shows where it lives in the code and what could go wrong. Copy the command in one click, and your agent writes the test and proves it now catches the bug.

Tests: Reused coupon got past the tests.

Dashboard

Every test, with its full history. See what’s covered at a glance.

Tests / Runs
  • calculates free shippingpassed
  • applies coupon oncepassed
  • completes checkoutflaky
  • shows empty cart stateskipped
  • last 10 runs per test
Your skills

Already have a TDD skill? Plug it in. Faundr connects to it and shows every missing test it finds.

Connect the skills you already use, from any author or plugin, with /faundr:skills. When one runs, every missing test it finds becomes a T-n in your Tests dashboard, tagged with the skill’s name.

Workflows · Skills
  • /tdd Plugin Connected · Tests

    Writing the test before the code

  • /write-copy Project

    Writing or improving page copy

Tests / Mutation
  • T-14Applying an expired coupon has no testvia /tdd · src/coupon/apply.ts:40
  • T-13A failed payment retry is never checkedvia /tdd · src/checkout/pay.ts:22
  • T-12Changing >= to > in free shipping fails no testEqualityOperator · src/checkout/shipping.ts:12
  • Counted like Faundr’s own. Same list, same T-n numbering, same /faundr:tests T-n to write the missing test.
  • Closes itself. Run the skill again and whatever it no longer finds drops off the list.
  • Each skill minds its own. A skill only closes what it reported, never Faundr’s findings or another skill’s.

Supported languages

Faundr runs your tests with the runner your project already uses and installs nothing. If there’s no runner yet, your AI suggests one that fits your stack and asks before adding it.

  • JavaScript & TypeScript
  • React Native
  • Vue
  • Angular
  • Svelte & Astro
  • Python
  • Flutter & Dart
  • PHP
  • Go
  • Java
  • Kotlin
  • C#
  • Rust
  • C
  • C++

Test runners

  • Vitest
  • Jest
  • Playwright
  • node --test
  • pytest
  • flutter test
  • dart test
  • PHPUnit
  • Pest
  • go test
  • Maven
  • Gradle
  • dotnet test
  • cargo test
  • CTest
  • make test
  • Karma

See what each part covers, language by language

FAQ

Do tests run automatically?

No. They run only when you or your agent ask, with faundr tests-run. Nothing slows down your machine without you knowing.

Does it work with my test tools?

Running and recording works with the runner you already have: Vitest, Jest, Playwright, node --test, pytest, flutter test, dart test, PHPUnit, Pest, go test, Maven, Gradle, dotnet test, cargo test, CTest, make test and Karma. Finding missed scenarios is for JavaScript and TypeScript for now (Vitest, Jest or node --test), and needs Stryker in the project. Your AI installs it with your OK.

My project has zero tests.

/faundr:tests asks what can’t break, suggests a test runner that fits your stack (Vitest for a JavaScript app, for example) and asks before installing it, then writes your first tests one at a time.

Does it burn my tokens?

Running tests and finding missed scenarios use zero AI. Only writing or fixing tests draws on your own AI plan.

Is my code sent to Faundr?

No. Only each test’s name, result and failure message, with passwords masked.

Ship knowing the important stuff won’t break. Start with /faundr:tests in your next session.

Get started free