---
id: TST-PFM-ELG-408
title: Attention rules 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/rules.spec.js
implements:
  - ATS-PFM-ELG-016-08
  - ATS-PFM-ELG-017-04
  - ATS-PFM-ELG-017-05
  - ATS-PFM-ELG-018-01
  - ATS-PFM-ELG-018-04
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/rules.spec.js'
    cases:
      - >-
        weighs a required item over an advisory over an opportunity, all else
        equal
      - >-
        adds 60 for overdue, 40 for due soon, 20 for upcoming and nothing
        without a due instant
      - 'adds both adjustments and one point per whole day open, at most ten'
      - >-
        never lets an opportunity outrank a required item within the declared
        bounds
      - is overdue once the due instant has passed
      - 'is due soon up to the horizon, counted in the tenant’s calendar days'
      - is upcoming past the horizon
      - is none without a due instant
      - >-
        keeps seven calendar days across the end of daylight saving time (one of
        them 25 hours long)
      - is the declared lifecycle duration
      - is seven days when none is declared
      - >-
        is the tenant’s due_soon_within_days when the definition declares that
        setting, clamped to its bounds
      - ignores a tenant value for a setting the definition does not declare
      - 'lets an open item be refreshed, resolved or expired'
      - never reopens a resolved item (a recurrence is a new generation)
      - never reopens an expired item
      - lets every class be acknowledged and unsnoozed
      - refuses dismissing a required item as not_dismissable
      - lets an advisory and an opportunity be dismissed
      - lets a required item be snoozed up to its definition’s duration
      - >-
        refuses a required item’s snooze past its definition’s duration as
        snooze_limit
      - >-
        refuses a required item’s snooze once it has been snoozed its allowed
        number of times
      - >-
        bounds a required item by seven days and three times when its definition
        declares nothing
      - >-
        lets an advisory be snoozed as often as wanted, up to ninety days at a
        time
      - refuses a snooze that ends in the past as snooze_in_past
      - refuses every action on an item that is no longer open
      - >-
        orders a resource responsibility, a tenant responsibility, a delegation,
        covering, a team, a role, an escalation, a user
      - gives every kind its own rank
  - provenance: documented
    source: 'services-platform:modules/attention/tests/unit/rules.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 rules 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 runs isolated checks; its imported fixtures and injected collaborators define the substitutions. The source imports and suite header identify the exact dependencies.

## Must Not Be Doubled

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