---
id: TST-PFM-DJE-182
title: Data job port
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-platform
files:
  - modules/data-jobs/tests/unit/data-job-port.spec.ts
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-platform:modules/data-jobs/tests/unit/data-job-port.spec.ts'
assertion_inventory:
  - 'routeOfObjectType: which macroservice serves an object type, and under which path'
  - 'sends a Platform object type to Platform, under the path its records are served at'
  - 'sends a CRM object type to CRM, which is the same derivation and not a second rule'
  - spells a multi-word object as the snake_case path segment it is served under
  - 'keeps a dotted object name whole, so only the first dot divides the service from the object'
  - 'refuses an object type that names no service, rather than asking some default one'
  - refuses an object type that names no object
  - 'apiBaseUrlVariable: where a macroservice’s API address is configured'
  - 'names Platform’s own variable, which is what a run that loads a Platform dataset reads'
  - 'names CRM’s, by the same derivation'
  - spells a hyphenated service name as one underscored variable
  - 'read_progress: a job read from another service, reduced as an in-process step is'
  - 'finishes a step whose job completed with rejections, so the run goes on to the datasets after it'
  - keeps a job that has not reached a final state running
  - fails the step for every final state that is not a success
  - 'blocks a finished step with items nothing attempted, so the run submits it once more'
  - reads a service that still answers in camelCase the same way
  - 'counts a conflict as a rejection, so the four counts still add up'
registration_note: Registration describes existing source; the suite is not executed by this documentation job.
---

# Data job port

## 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 data job port. 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.
