---
id: TST-PFM-NOT-113
title: render message
kind: unit
product_area: platform
module: notifications
revision: 1
status: draft
source_sha:
  services-platform: ad3f6a6582843008ed0f5a17b131878d15829af1
repository: services-platform
files:
  - modules/notifications/tests/unit/render-message.spec.js
implements:
  - ATS-PFM-NOT-004-01
  - ATS-PFM-NOT-004-02
  - ATS-PFM-NOT-004-03
  - ATS-PFM-NOT-004-04
environment: mock
implementation_state: implemented
latest_result: not-run
latest_run_at: null
latest_run_ref: null
conformance: not-verified
estimated_minutes: 1
isolation: Per-process test inputs and installed doubles.
assertion_bindings:
  - scenario: ATS-PFM-NOT-004-01
    suite: TST-PFM-NOT-113
    assertions:
      - >-
        services-platform:modules/notifications/tests/unit/render-message.spec.js#renders
        an instant in the recipient’s zone, not the server’s
      - >-
        services-platform:modules/notifications/tests/unit/render-message.spec.js#renders
        the same instant differently for a person in another zone
      - >-
        services-platform:modules/notifications/tests/unit/render-message.spec.js#uses
        the recipient’s locale when the definition declares it
      - >-
        services-platform:modules/notifications/tests/unit/render-message.spec.js#falls
        back from a regional locale to its language
      - >-
        services-platform:modules/notifications/tests/unit/render-message.spec.js#falls
        back to English for a locale the definition does not declare
  - scenario: ATS-PFM-NOT-004-02
    suite: TST-PFM-NOT-113
    assertions:
      - >-
        services-platform:modules/notifications/tests/unit/render-message.spec.js#cuts
        a title longer than 140 characters rather than refusing the notification
      - >-
        services-platform:modules/notifications/tests/unit/render-message.spec.js#cuts
        a body longer than 2,000 characters
  - scenario: ATS-PFM-NOT-004-03
    suite: TST-PFM-NOT-113
    assertions:
      - >-
        services-platform:modules/notifications/tests/unit/render-message.spec.js#gives
        the in-app record the tenant-relative path, and every other channel the
        absolute link under the workspace
      - >-
        services-platform:modules/notifications/tests/unit/render-message.spec.js#keeps
        an HQ route as it is when the request is in no tenant
      - >-
        services-platform:modules/notifications/tests/unit/render-message.spec.js#builds
        no destination when a parameter is missing
  - scenario: ATS-PFM-NOT-004-04
    suite: TST-PFM-NOT-113
    assertions:
      - >-
        services-platform:modules/notifications/tests/unit/render-message.spec.js#replaces
        each with the marker and leaves the rest
evidence:
  - 'services-platform:modules/notifications/tests/unit/render-message.spec.js'
  - The file and referenced assertion titles exist at the pinned commit.
dependency_evidence:
  - >-
    Real: the LiquidJS sandbox the registration validates templates in, and the
    pure renderer. Doubled: nothing. Never doubled: the
---

# render message

## Verification Boundary

This suite checks isolated calculations, validation or presentation with process-local inputs. It does not establish a deployed workflow.

## What This Suite Proves

Its cases exercise apply locale fallback and time-zone formatting; truncate oversized console content; build destinations for the notice workspace; redact retained link values.

The registered scenario bindings identify the assertions this executable file contributes. They retain individual test references so that a composite scenario does not become a claim of complete execution by one file.

## What It Does Not Prove

Local outcomes do not prove deployed queues, external provider acceptance, production credentials or complete browser behavior. No fresh execution or conformance result is claimed.

## Real Dependencies and Test Doubles

The test file identifies its pure inputs or presentation doubles. Console component suites use recorded request handlers; pure validation suites require no external provider.

## Must Not Be Doubled

The calculation, validator or component under test must execute its real implementation. Doubles supply inputs and external responses without replacing the behavior being proved.
