Commit Graph

1 Commits

Author SHA1 Message Date
MechaCat02
f33c88b9d0 test(executor-core): golden SDK contract suite
Pins the user-visible Rhai SDK behaviors to a concrete test file so
SemVer enforcement isn't aspirational. **Editing this file is an SDK
version bump event** — the file header documents the rule.

  * 30 tests covering every documented SDK 1.0 + 1.1 surface:
      ctx.sdk_version (format + feature-detection)
      ctx.execution_id / request_id / script_id (UUID shape)
      ctx.script_name (round-trip)
      ctx.invocation_type (http / function / scheduled)
      ctx.request.path / headers / body / params / query / rest
      log::trace / info / warn / error (with and without data)
      response convention: bare value → 200, structured map →
        statusCode pass-through, missing statusCode → wrapped 200,
        non-integer statusCode → InvalidResponse error
      sandbox restrictions: imports blocked, print disabled,
        log::debug rejected (Rhai keyword — use log::trace)
      JSON type fidelity (string/int/float/bool/null/array/object/
        nested round-trip)

  * Separate from tests/engine.rs (which tests internal Engine
    behaviors) — same crate, different audience: engine.rs is
    "does the engine work right", sdk_contract.rs is "does the
    public contract hold". Some overlap is intentional so the
    contract is readable in one place.

  * Plain cargo test --workspace runs all 30 (no infrastructure
    needed); these are pure unit tests.

Wires up enforcement item (3) from docs/versioning.md.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-23 22:21:10 +02:00