---
id: TST-ACC-BKS-165
title: Resolution rule suite
kind: unit
product_area: accounting
module: books
revision: 1
status: draft
source_sha:
  services-accounting: f47cb263875bbc0c5640fba7dae6785ec32695f8
  react-console: baf6dae382d6f41dce976c7f848667ccc37e076f
repository: services-accounting
files:
  - modules/books/tests/unit/document-templates/resolution.spec.js
implements:
  - ATS-ACC-BKS-015-01
  - ATS-ACC-BKS-015-02
  - ATS-ACC-BKS-015-03
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 example owns its input values and configured doubles.
assertion_bindings:
  - scenario: ATS-ACC-BKS-015-01
    source: >-
      services-accounting:modules/books/tests/unit/document-templates/resolution.spec.js#uses
      the tenant template named, over the business unit’s
  - scenario: ATS-ACC-BKS-015-01
    source: >-
      services-accounting:modules/books/tests/unit/document-templates/resolution.spec.js#uses
      the unit’s invoice template
  - scenario: ATS-ACC-BKS-015-01
    source: >-
      services-accounting:modules/books/tests/unit/document-templates/resolution.spec.js#uses
      the tenant’s default statement template from the settings
  - scenario: ATS-ACC-BKS-015-01
    source: >-
      services-accounting:modules/books/tests/unit/document-templates/resolution.spec.js#uses
      the built-in invoice when nothing else is configured
  - scenario: ATS-ACC-BKS-015-01
    source: >-
      services-accounting:modules/books/tests/unit/document-templates/resolution.spec.js#uses
      the QuickBooks format for a QuickBooks unit
  - scenario: ATS-ACC-BKS-015-02
    source: >-
      services-accounting:modules/books/tests/unit/document-templates/resolution.spec.js#refuses
      an inactive template named explicitly, in Rhythm 1.0’s words
  - scenario: ATS-ACC-BKS-015-02
    source: >-
      services-accounting:modules/books/tests/unit/document-templates/resolution.spec.js#refuses
      a tenant template of another kind
  - scenario: ATS-ACC-BKS-015-02
    source: >-
      services-accounting:modules/books/tests/unit/document-templates/resolution.spec.js#refuses
      a template the tenant does not have
  - scenario: ATS-ACC-BKS-015-02
    source: >-
      services-accounting:modules/books/tests/unit/document-templates/resolution.spec.js#refuses
      an inactive statement template named explicitly, which Rhythm 1.0 rendered
  - scenario: ATS-ACC-BKS-015-02
    source: >-
      services-accounting:modules/books/tests/unit/document-templates/resolution.spec.js#passes
      over an inactive template the unit names, to the built-in
  - scenario: ATS-ACC-BKS-015-03
    source: >-
      services-accounting:modules/books/tests/unit/document-templates/resolution.spec.js#refuses
      a download for a QuickBooks Online unit, whose entries Rhythm 1.0 pushed
      through its API
  - scenario: ATS-ACC-BKS-015-03
    source: >-
      services-accounting:modules/books/tests/unit/document-templates/resolution.spec.js#refuses
      a download for a unit whose package has no format and no template (Rhythm
      1.0’s V19)
  - scenario: ATS-ACC-BKS-015-03
    source: >-
      services-accounting:modules/books/tests/unit/document-templates/resolution.spec.js#refuses
      a download resolved without a business unit
unmapped: false
evidence:
  - provenance: test
    source: >-
      services-accounting:modules/books/tests/unit/document-templates/resolution.spec.js
execution_notes: >-
  The file exists at the pinned revision; this registration records no execution
  result.
---

# Resolution rule suite

## Verification Boundary

The suite evaluates books configuration logic directly. Its boundary is the called functions and configured dependencies, rather than a running service.

## What This Suite Proves

The individual assertion references identify the acceptance outcomes this file exercises. When a scenario spans several suites, this file supplies only its listed assertions; qualification must include the other bindings and any recorded coverage finding.

## What It Does Not Prove

Direct function checks do not prove route enforcement, transaction behavior or deployed integration. No result is claimed for the pinned revision until the suite runs and its evidence is reviewed.

## Real Dependencies and Test Doubles

The called rule or mapping functions are real code. Test inputs and any dependency doubles remain confined to individual examples.

## Must Not Be Doubled

The production function or carried adapter named by the file remains the subject under test; a second implementation of its expected answer is not a substitute.
