---
id: TST-PFM-ELG-403
title: Attention registration manifest checks
kind: unit
product_area: platform
module: eligibility
revision: 1
status: draft
source_sha:
  services-platform: ad3f6a6582843008ed0f5a17b131878d15829af1
repository: services-platform
files:
  - modules/attention/tests/unit/registration-manifest.spec.js
implements:
  - ATS-PFM-ELG-016-01
environment: mock
implementation_state: implemented
latest_result: not-run
conformance: not-verified
estimated_minutes: 1
isolation: One process with suite-local inputs.
evidence:
  - provenance: test
    source: >-
      services-platform:modules/attention/tests/unit/registration-manifest.spec.js
    cases:
      - accepts a materialized required definition and an advisory one
      - >-
        accepts a manifest declaring nothing, which retires what the application
        declared before
      - accepts a computed definition over a dataset with a fixed audience
      - accepts an action that declares its own application’s permission
      - refuses an action permission of another application
      - >-
        refuses an action permission that is not
        <application>.<snake_case>.<kebab-case>
      - accepts a reminder policy in the lifecycle
      - refuses a reminder cadence shorter than an hour
      - refuses more than ten reminders
      - refuses a key of another application
      - refuses a key declared twice
      - refuses a required definition without required_because
      - refuses an opportunity with an escalation
      - refuses a portal definition that names no portal audience kind
      - refuses a console-only definition that names a portal audience kind
      - refuses a surface without its title template
      - refuses an example naming an undeclared fact
      - refuses a definition without examples
      - >-
        refuses a portal-visible money fact about an object that is not
        portal-safe (08 §4, rule 5)
      - accepts a portal-visible money fact about a portal-safe object
      - refuses an action offered on a surface the definition does not have
      - 'refuses a sweep cadence that is not one of PT15M, PT1H, P1D and none'
      - refuses a priority adjustment outside -20..20
      - refuses a setting whose default leaves its bounds
      - refuses a computed definition over a dataset without criteria
      - >-
        refuses a fact key that a template reads already (count, about,
        settings)
      - 'refuses a snake_case fact key, naming the key'
      - 'names the snake_case fact key of an example, which is no fact key'
      - 'accepts a camelCase fact key with its template, and renders it'
      - refuses an audience member of another kind (only its kind’s members)
      - renders every template of a valid definition against its examples
      - 'refuses a template that names an undeclared fact, naming the template'
      - refuses a template that does not parse
      - refuses a template that reads another template (an include)
  - provenance: documented
    source: >-
      services-platform:modules/attention/tests/unit/registration-manifest.spec.js:suite
      header
    note: >-
      The source header describes the verification boundary and declared
      substitutions.
proof_limit: >-
  Only the named scenario checkpoints have a verified source binding; execution
  has not been attempted.
---

# Attention registration manifest checks

## Verification Boundary

This suite checks isolated decisions and validation using the imported inputs. It cannot establish a complete service or browser lifecycle.

## What This Suite Proves

The mapped scenarios identify the capability and feature checkpoints this file exercises. The source test titles preserve the assertion-level evidence.

## What It Does Not Prove

Registration supplies no execution result or conformance decision. Passing isolated checks does not establish deployed dependencies or cross-application delivery.

## Real Dependencies and Test Doubles

The suite exercises its real module dependencies and declares no test doubles. Its source header and imports identify the database, transaction and service boundaries it uses.

## Must Not Be Doubled

The decision or validator being asserted remains real; returning the expected answer from a substitute defeats the check.
