---
id: TST-ACC-BAT-120
title: Batch rules batches awaiting posting
kind: unit
product_area: accounting
module: batches
revision: 1
status: draft
product_intent: proposed
implementation_evidence: observed
source_sha:
  services-accounting: f47cb263875bbc0c5640fba7dae6785ec32695f8
repository: services-accounting
files:
  - modules/batches/tests/unit/attention/batches-awaiting-posting.spec.js
implements:
  - ATS-ACC-BAT-008-01
  - ATS-ACC-BAT-008-04
environment: mock
implementation_state: implemented
latest_result: not-run
latest_run_at: null
latest_run_ref: null
conformance: not-verified
estimated_minutes: 1
isolation: Each case owns its supplied rule inputs and test doubles.
assertion_sources:
  - scenario: ATS-ACC-BAT-008-01
    provenance: test
    source: >-
      services-accounting:modules/batches/tests/unit/attention/batches-awaiting-posting.spec.js#holds
      for a transaction batch in exactly closed, verified, posting and error
  - scenario: ATS-ACC-BAT-008-01
    provenance: test
    source: >-
      services-accounting:modules/batches/tests/unit/attention/batches-awaiting-posting.spec.js#never
      holds for a system batch
  - scenario: ATS-ACC-BAT-008-04
    provenance: test
    source: >-
      services-accounting:modules/batches/tests/unit/attention/batches-awaiting-posting.spec.js#answers
      the default 2 for a missing, fractional, out-of-bounds or mistyped value
  - scenario: ATS-ACC-BAT-008-04
    provenance: test
    source: >-
      services-accounting:modules/batches/tests/unit/attention/batches-awaiting-posting.spec.js#counts
      calendar days in the tenant zone, keeping the wall-clock time across the
      end of daylight saving
  - scenario: ATS-ACC-BAT-008-04
    provenance: test
    source: >-
      services-accounting:modules/batches/tests/unit/attention/batches-awaiting-posting.spec.js#answers
      the close itself for an allowance of 0 days
evidence:
  - provenance: observed
    source: >-
      services-accounting:modules/batches/tests/unit/attention/batches-awaiting-posting.spec.js
    note: >-
      The executable file is inspected at the pinned revision; duration is an
      unmeasured planning estimate.
  - provenance: documented
    source: >-
      services-accounting:modules/batches/tests/unit/attention/batches-awaiting-posting.spec.js#suite
      header
    note: >-
      Real: the declaration, the SDK's checks and LiquidJS, the rules, Moment's
      zone data. Doubled: the clock (`fixedClock`).
unbound_scope: null
---

# Batch rules batches awaiting posting

## Verification Boundary

This suite exercises the named rule functions with controlled inputs. Its boundary ends before persistent accounting and deployed execution.

## What This Suite Proves

Waiting-state selection and deadline calculations are checked with controlled status and allowance inputs. The assertion anchors identify the supported portions of the bound scenarios.

## What It Does Not Prove

These checks do not prove transport authorization, transactional storage, scheduling delivery or the whole feature workflow.

## Real Dependencies and Test Doubles

The rule inputs and dependency callbacks are controlled by the case. Database, API dispatch and workflow delivery are outside this boundary.

## Must Not Be Doubled

Qualifying transactional integrity requires real storage and accounting execution beyond this rule-only suite.
