---
id: TST-ACC-TRX-153
title: Stripe processor suite
kind: unit
product_area: accounting
module: transactions
revision: 1
status: draft
source_sha:
  services-accounting: f47cb263875bbc0c5640fba7dae6785ec32695f8
repository: services-accounting
files:
  - modules/transactions/tests/unit/stripe-processor.spec.js
implements: []
implements_parts: []
environment: local
implementation_state: implemented
latest_result: not-run
latest_run_at: null
latest_run_ref: null
conformance: not-verified
estimated_minutes: 1
isolation: In-memory fixtures and test-controlled collaborators.
provenance: test
source: 'services-accounting:modules/transactions/tests/unit/stripe-processor.spec.js'
evidence:
  - provenance: test
    source: >-
      services-accounting:modules/transactions/tests/unit/stripe-processor.spec.js
    assertion_titles:
      - the Stripe adapter (unit)
      - a charge
      - >-
        creates and confirms one PaymentIntent under the intent’s key with the
        Rhythm metadata, and answers the capture
      - >-
        accepts an electronic check pending settlement, as a US bank account
        debit with an offline mandate
      - >-
        reads a card error as declined with its decline code, and an intent that
        needs an action as declined
      - >-
        reads a connection error as uncertain and an authentication error as
        unavailable
      - 'is unavailable when no secret key is configured, charging nothing'
      - >-
        finds the charge again by its metadata (the sweeper’s question), or
        answers not_found
      - money back
      - >-
        refunds through a Refund of the PaymentIntent under the refund’s key and
        metadata
      - reads a failed Refund and an invalid request as declined
      - >-
        voids as a Refund under the reversal’s key; a charge already refunded is
        already_settled
      - >-
        finds a refund or a void again among the charge’s refunds by its
        metadata, or answers not_found
      - a clearing
      - >-
        reads the PaymentIntent’s status: succeeded cleared as of the day asked,
        processing pending, failed returned with the bank’s code
    imports:
      - 'const { expect } = require(''chai'');'
      - >-
        const { ProcessorUncertainError, ProcessorUnavailableError } =
        require('../../services/payments/ports/payment-processor');
      - >-
        const { STRIPE_METADATA, stripePaymentProcessor } =
        require('../../services/payments/stripe-processor');
      - >-
        const { StripeNotConfiguredError, useStripeCredentialsForTests } =
        require('../../services/ports/stripe-credentials');
      - >-
        const { useStripeClientForTests } =
        require('../../services/stripe/stripe-client');
    test_double_declarations: []
---

# Stripe processor suite

## Verification Boundary

The suite exercises financial calculations and input contracts in an isolated test process. Registration records the existing executable file; it does not report a run or establish product approval.

## What This Suite Proves

The executable assertions exercise this module, but no capability or feature scenario binding is established for this file. Its individual assertion titles remain in the evidence register for subsequent mapping.

## What It Does Not Prove

Pure calculations and doubled collaborators do not establish database persistence, route authorization or deployed behavior. An unbound feature chain remains proposed, and this registration carries no execution result.

## Real Dependencies and Test Doubles

The imported calculation or contract runs with the fixtures and collaborators declared by the test. The evidence register retains those declarations so the boundaries can be inspected.

## Must Not Be Doubled

The calculation or contract being asserted must remain real; replacing it with a predetermined result removes this suite’s evidence.
