---
id: TST-ACC-CLS-042
title: 'Recognition, cost and authority evaluators'
kind: unit
product_area: accounting
module: close
revision: 1
status: draft
source_sha:
  services-accounting: f47cb263875bbc0c5640fba7dae6785ec32695f8
repository: services-accounting
files:
  - modules/fiscal-close/tests/unit/readiness/other-checks.spec.js
implements:
  - ATS-ACC-CLS-004-02
  - ATS-ACC-CLS-004-06
  - ATS-ACC-CLS-007-01
  - ATS-ACC-CLS-007-03
  - ATS-ACC-CLS-007-05
environment: local
implementation_state: implemented
latest_result: not-run
latest_run_at: null
latest_run_ref: null
conformance: not-verified
estimated_minutes: 1
isolation: The suite owns in-memory inputs and declaration fixtures.
binding_policy: >-
  Each binding identifies the assertions this suite executes; combined scenarios
  may require other bound suites. Existence is not a recorded execution result.
evidence:
  - >-
    services-accounting:modules/fiscal-close/tests/unit/readiness/other-checks.spec.js
  - provenance: test
    source: >-
      services-accounting:modules/fiscal-close/tests/unit/readiness/other-checks.spec.js
    assertion_titles:
      - 'readiness: the other rules'
      - revenue_recognition
      - 'passes with what the close will recognize: 41 schedules ($63,215.00)'
      - maps a schedule to its preview line
      - passes with nothing due
      - >-
        is blocked by a due entry with no G/L account, naming the problem on its
        line
      - cost_of_goods_sold
      - 'is not applicable, saying Rhythm 2.0 records no COGS entries yet'
      - close_authorization
      - passes when the caller holds accounting.fiscal-periods.close
      - is blocked when the caller does not
      - an evaluator that could not run
      - >-
        is an error, never passed, keeping the requirement the tenant’s policy
        gives it
real_dependencies: >-
  The suite calls pure rules, mappings or declarations with supplied inputs and
  test contexts. No deployed workflow is exercised.
product_intent: proposed
implementation_evidence: observed
---
# Recognition, cost and authority evaluators

## Verification Boundary

The suite exercises pure rules, mappings or declarations with supplied inputs. It checks those functions directly rather than executing a complete close.

## What This Suite Proves

Pure rule assertions map due schedule previews, missing accounts, unsupported cost work, caller authority and evaluator errors using supplied inputs.

## What It Does Not Prove

This register records assertion scope without claiming a passing run or complete coverage of every rule and scenario variant.

## Real Dependencies and Test Doubles

The suite calls pure rules, mappings or declarations with supplied inputs and test contexts. No deployed workflow is exercised.

## Must Not Be Doubled

Run the production rule, mapper or declaration being asserted. Supplied inputs are appropriate here; they do not establish database, public API or deployed workflow behavior.
