---
id: TST-ACC-BAT-071
title: Batch integration posting period statuses
kind: integration
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/integration/services/close/posting-period-statuses.integration.spec.js
implements:
  - ATS-ACC-BAT-020-03
environment: local
implementation_state: implemented
latest_result: not-run
latest_run_at: null
latest_run_ref: null
conformance: not-verified
estimated_minutes: 5
isolation: >-
  The suite owns its test workspace or fixed integration fixtures in the
  prepared local database.
assertion_sources:
  - scenario: ATS-ACC-BAT-020-03
    provenance: test
    source: >-
      services-accounting:modules/batches/tests/integration/services/close/posting-period-statuses.integration.spec.js#allows
      post_system_batch, which posts the batch
  - scenario: ATS-ACC-BAT-020-03
    provenance: test
    source: >-
      services-accounting:modules/batches/tests/integration/services/close/posting-period-statuses.integration.spec.js#refuses
      reverse_system_batch (`period_not_closed`)
evidence:
  - provenance: observed
    source: >-
      services-accounting:modules/batches/tests/integration/services/close/posting-period-statuses.integration.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/integration/services/close/posting-period-statuses.integration.spec.js#suite
      header
    note: >-
      Real: the integration database, the configuration services, the close
      job's `set_period_status`, the close functions, the guard and
  - provenance: documented
    source: >-
      services-accounting:modules/batches/tests/integration/services/close/posting-period-statuses.integration.spec.js#suite
      header
    note: 'the persistence services. Doubled: nothing.'
unbound_scope: null
---

# Batch integration posting period statuses

## Verification Boundary

This suite exercises the imported batch services or storage against the prepared local database. It does not imply that a deployed workflow is contacted.

## What This Suite Proves

Open, Closing, Closed and Reopening periods are compared across strict ordinary admission and the fiscal recognition and recovery functions. The assertion anchors identify the supported portions of the bound scenarios.

## What It Does Not Prove

Local assertions do not establish deployment configuration, remote delivery guarantees, or unasserted lifecycle and concurrency paths.

## Real Dependencies and Test Doubles

PostgreSQL and the exercised persistence or accounting functions are real. Controlled clocks, imported test fixtures and any suite-specific doubles delimit the asserted behavior.

## Must Not Be Doubled

The database constraints, transaction boundaries and exercised accounting functions must remain real when qualifying the asserted persistence or generation behavior.
