Design / Platform / AI Requests, Usage and the Jazz AI Teammate / Rhythm HQ AI Controls / Capability Test Specification Show evidence (sources, provenance, origins, pinned commits)Coverage Rule gap: FND-PFM-LLM-072 Transition gap: FND-PFM-LLM-072 Validation covered Permission covered Edge gap: FND-PFM-LLM-072 Failure covered Boundary covered Concurrency covered Invariant covered Interaction covered Test Scenarios 18 scenarios proving CAP-PFM-LLM-013 ; 16 bound to an existing test.
01 Limit changes require management authority permission api negative test
Proves BR-CAP-PFM-LLM-013-01 Preconditions Read-only staff, a customer administrator and a manager have sessions. Steps Attempt limit preview and write as each. Expected Only the manager can proceed; denied callers write nothing. Data Authorized and unauthorized fixtures for the scenario, with controlled request and usage records. Bound to Source services-platform:modules/llm/tests/e2e/llm-limits.e2e.spec.js #is refused the write 03 Invalid limit values preserve all records validation api negative proposed
Proves BR-CAP-PFM-LLM-013-03 Preconditions An organization has saved limits. Steps Submit excessive allowance, unknown operation and blank reason examples. Expected Each invalid field is reported and limits, period and audit remain unchanged. Data Fixtures representing an organization has saved limits. Source services-platform:modules/llm/services/limits/tenant-limits.ts :validateTenantLimitsInput 04 Changed saves need the inspected version validation api negative test
Proves BR-CAP-PFM-LLM-013-04 INV-DOM-PFM-LLM-003-09 Preconditions Stored limits have version one. Steps Attempt a changed save with no version and an older version. Expected Missing-version and stale-version errors preserve existing state. Data Fixtures representing stored limits have version one. Bound to Source services-platform:modules/llm/tests/e2e/llm-limits.e2e.spec.js #refuses a write with no If-Match with 400 naming the header 05 Replaying stored values adds no history invariant api test
Proves BR-CAP-PFM-LLM-013-05 Preconditions A valid limits replacement has committed. Steps Submit the same values again. Expected The response says unchanged and adds neither audit nor period mutation. Data Fixtures representing a valid limits replacement has committed. Bound to Source services-platform:modules/llm/tests/e2e/llm-limits.e2e.spec.js #answers a replay of the write that committed with 200 and no second audit row 08 Preview changes no saved state boundary api test
Proves BR-CAP-PFM-LLM-013-08 Preconditions The current period has usage. Steps Preview a reduced allowance. Expected The projected position is returned without configuration or audit writes. Data Fixtures representing the current period has usage. Bound to Source services-platform:modules/llm/tests/e2e/llm-limits.e2e.spec.js #previews the limits against this month without writing or auditing 09 Global AI disablement outranks exemptions rule api negative test
Proves BR-CAP-PFM-LLM-013-09 Preconditions Global AI and individual operation restrictions combine with an active exemption. Steps Evaluate operation access under each configuration. Expected Exemption permits a disabled operation only while the global AI switch remains on. Data Fixtures representing global AI and individual operation restrictions combine with an active exemption. Bound to Source services-platform:modules/llm/tests/integration/services/limits/tenant-limits.integration.spec.js #refuses it when AI is off, whatever exemption is in force 10 Exemption cannot bypass global disablement interaction api negative test
Proves BR-CAP-PFM-LLM-013-09 BR-CAP-PFM-LLM-014-02 Preconditions An operation is disabled and a temporary exemption exists. Steps Check admission with global AI enabled, then disable global AI and check again. Expected The exemption bypasses only the operation switch; global disablement refuses without holding capacity. Data An isolated workspace with the records, clock instants and caller authority stated in the preconditions. Bound to Source services-platform:modules/llm/tests/integration/services/limits/tenant-limits.integration.spec.js #allows it again while an operation exemption is in force,services-platform:modules/llm/tests/integration/services/limits/tenant-limits.integration.spec.js#refuses it when AI is off, whatever exemption is in force 11 Customer availability follows recurring switches interaction api proposed
Proves BR-CAP-PFM-LLM-013-09 BR-CAP-PFM-LLM-017-04 Preconditions A feature has one declared operation and current usage. Steps Read availability, disable its operation, then disable global AI and read each state. Expected Customer restriction wording follows the current switches without exposing management configuration or model details. Data An isolated workspace with the records, clock instants and caller authority stated in the preconditions. Source services-platform:modules/llm/tests/integration/services/limits/tenant-limits.integration.spec.js #refuses it when AI is off, whatever exemption is in force,services-platform:modules/llm/services/usage/organization-usage.ts 12 Persisted limits reject a zero running cap validation api negative test
Proves BR-CAP-PFM-LLM-013-03 Preconditions The suite owns isolated fixtures representing the valid control and the contrasting case described by its steps. Steps Insert a cap of one, then attempt zero for the same configuration shape. Expected One is accepted and zero is refused. Data Suite-owned fixtures, with a fixed clock where dates or grant windows matter. Bound to Source services-platform:modules/llm/tests/integration/db/llm-tenant-limits.table.integration.spec.js #refuses an in-flight cap of zero, which would refuse every call 13 An exemption restores only operation access interaction api test
Proves BR-CAP-PFM-LLM-013-09 Preconditions The suite owns isolated fixtures representing the valid control and the contrasting case described by its steps. Steps Attempt a scripted operation while it is disabled, grant an operation exemption and attempt again. Expected The first request refuses with no provider call; the exemption permits the later scripted request. Data Suite-owned fixtures, with a fixed clock where dates or grant windows matter. Bound to Source services-platform:modules/llm/tests/integration/lifecycle/tenant-limits.integration.spec.js #runs the call once the exemption is in force 16 Limit writes require an inspected version validation unit negative test
Proves BR-CAP-PFM-LLM-013-04 Preconditions The suite owns isolated fixtures representing the valid control and the contrasting case described by its steps. Steps Map a changed write without its version precondition and compare a valid versioned write. Expected The missing version is refused before the save. Data Suite-owned fixtures, with a fixed clock where dates or grant windows matter. Bound to Source services-platform:modules/llm/tests/unit/aws/api/llm-usage-limits-api.spec.ts #is required, since a write with no claim would let a stale screen overwrite a change 17 Limit validation rejects undeclared operations validation unit negative test
Proves BR-CAP-PFM-LLM-013-03 Preconditions The suite owns isolated fixtures representing the valid control and the contrasting case described by its steps. Steps Validate disabled-operation names against the declared catalog. Expected Undeclared names are refused before a configuration replacement. Data Suite-owned fixtures, with a fixed clock where dates or grant windows matter. Bound to Source services-platform:modules/llm/tests/unit/services/tenant-limits.spec.ts #refuses an operation key the catalog does not declare, naming it 18 Disabled-operation failure maps to a conflict failure unit negative test
Proves BR-CAP-PFM-LLM-013-09 Preconditions The operation-disabled error is constructed by the production refusal type. Steps Map the error through the shared response shaper. Expected The response is a conflict carrying the disabled-operation code; this experiment does not evaluate exemptions. Data A production disabled-operation error and a literal period snapshot. Bound to Source services-platform:modules/llm/tests/unit/services/llm-operation-disabled.spec.ts #answers 409, because it holds until staff switch it back on and is neither a limit nor a failure ← Previous Capability Test Specification ATS-PFM-LLM-012 · Explain an AI refusal or unsuccessful conversation: Capability Test Specification Next Capability Test Specification → ATS-PFM-LLM-014 · Provide temporary AI capacity and revoke it: Capability Test Specification