---
id: TST-PFM-DJE-149
title: Sqs redelivery
kind: unit
product_area: platform
module: data-job-engine
revision: 1
status: draft
source_sha:
  services-platform: ad3f6a6582843008ed0f5a17b131878d15829af1
  macroservice-libraries: 54536a441935c6e09fdb7f96f0bec71c52ba4e03
  services-crm: a8d1364f1dd44b723bb5f9acba12f983e9ec8d69
  services-membership: 5994c270e8a37a30f848e99ba5b5ee6b87c08893
  react-console: baf6dae382d6f41dce976c7f848667ccc37e076f
repository: services-crm
files:
  - modules/data-jobs/tests/unit/services/queue/sqs-redelivery.spec.js
implements: []
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 restored dependency doubles.
evidence:
  - 'services-crm:modules/data-jobs/tests/unit/services/queue/sqs-redelivery.spec.js'
assertion_inventory:
  - the redelivery of a data-job message the worker hands back
  - the delay
  - 'delivers the first redelivery after five seconds, not after the queue’s visibility timeout'
  - triples the delay with each receive after that
  - never delays a message past the queue’s own visibility timeout
  - treats a receive count it cannot read as the first receive
  - the queue it is sent to
  - derives the queue URL from the record’s queue ARN
  - refuses an ARN that is not a queue’s
  - the messages it is set for
  - 'takes the records of the messages the report hands back, with their receive counts, and no other'
  - leaves a record that names no receipt handle to the queue’s own timeout
  - the visibility change
  - 'sends one batch call to the message’s queue, each message with its own delay'
  - 'sends at most ten messages a call, which is the batch call’s limit'
  - sends nothing when the report hands nothing back
  - 'answers the message whose change SQS refused, which keeps the queue’s own timeout'
  - >-
    answers every message of a call that failed outright, and logs it rather than failing the
    delivery
registration_note: Registration describes existing source; the suite is not executed by this documentation job.
---

# Sqs redelivery

## Verification Boundary

The suite checks an isolated production calculation, declaration or adapter. The structured assertion inventory records the checks present at the pinned revision.

## What This Suite Proves

The existing checks exercise sqs redelivery. The specification bindings identify the narrower outcomes supported by those assertions.

## What It Does Not Prove

An isolated check does not establish a deployed workflow, database enforcement or complete feature acceptance.

## Real Dependencies and Test Doubles

The production function or declaration is exercised with in-memory inputs and dependency doubles. This boundary does not require a live database.

## Must Not Be Doubled

The production function under examination and its returned decisions remain real; replacing their answers defeats the check.
