Eridian

Test Generation

Generate unit and integration tests, then score them against the suite.

Eridian Dev generates tests from the file under change and from related index chunks. It can run them in your CI workers when you opt in. The model does not get a shell on Eridian's side.

Generate

POST /v1/dev/tests
Authorization: Bearer eridian_sk_...
Content-Type: application/json
Idempotency-Key: tests-posting-4821
{
  "project_id": "prj_dev_001",
  "repository_id": "repo_payments_core",
  "model": "auto",
  "target": {
    "path": "src/ledger/posting.ts",
    "sha": "8f3a2b1c"
  },
  "framework": "vitest",
  "kinds": ["unit", "edge"],
  "existing_test_paths": ["src/ledger/posting.test.ts"]
}

Required scope: dev:write.

{
  "id": "tst_88ab",
  "object": "eridian.dev.test_job",
  "status": "completed",
  "model": "gpt",
  "files": [
    {
      "path": "src/ledger/posting.test.ts",
      "operation": "patch",
      "content": "describe('postEntry retry', () => { ... })"
    }
  ],
  "notes": ["Added 503 retry without Idempotency-Key."],
  "eridian": {
    "route": "gpt",
    "region": "eu-west-1",
    "cost_usd": 0.034
  }
}

operation is patch or create. Eridian does not delete tests.

Frameworks

frameworkLanguages
vitestTypeScript, JavaScript
jestTypeScript, JavaScript
pytestPython
go_testGo
junitJava, Kotlin
rspecRuby

The value must match the repository. A mismatch returns 400 invalid_request with param: framework.

Run in CI

Eridian returns files. Your runner applies them and executes the suite. Optionally report results back:

POST /v1/dev/tests/tst_88ab/results
Authorization: Bearer eridian_sk_...
{
  "passed": false,
  "failed": [
    {
      "name": "postEntry retry without key",
      "message": "expected MissingIdempotencyKeyError"
    }
  ]
}

Failed runs can request a revision:

POST /v1/dev/tests/tst_88ab/revise
{
  "model": "gpt",
  "max_revisions": 2
}

Revisions are new inference calls billed as test generation. Cap them. A loop that cannot pass should fail the CI check, not raise max_revisions.

What we will not generate

  • Tests that require production credentials or live customer data.
  • Network tests that call api.geteridian.com from the generated file without a stub.
  • Snapshots of PII. PII redaction applies to prompts. Fixtures you commit are your policy.

Eval

Score generators with Evaluations using metrics: ["tests_compile", "tests_pass", "pii_leak"]. Promote the template only when tests_pass meets the desk threshold.

See CI Pipelines and Code Review (test_gaps is a good input to this API).

Production API credentials are issued with an institution workspace. Contact sales if you need access.