---
id: FAS-COM-CAT-05
title: 'Contextual Suggestions: Feature Acceptance Suite'
feature: FEAT-COM-CAT-05
product_area: commerce
module: catalog
revision: 1
status: proposed
product_intent: proposed
source_sha:
  services-commerce: c8b66a98e2490617aec38ba5c8165dd9bd0a8f9b
  react-console: baf6dae382d6f41dce976c7f848667ccc37e076f
capabilities:
  - CAP-COM-CAT-019
  - CAP-COM-CAT-020
scenarios:
  - id: FAS-COM-CAT-05-01
    title: An offered item becomes one attributable order line
    kind: behaviour
    exercises:
      - CAP-COM-CAT-019
      - CAP-COM-CAT-020
    relies_on:
      - ATS-COM-CAT-019-04
      - ATS-COM-CAT-020-01
    preconditions: A compatible active rule offers a twelve-dollar mug beside a member’s cart.
    steps:
      - do: >-
          Evaluate, accept, repeat acceptance, reevaluate, place and accept the order, then inspect
          rule performance.
        provenance: test
        source:
          - 'services-commerce:modules/recommendations/tests/e2e/offers.e2e.spec.js'
    expected: >-
      One mug line retains the offer, repetition adds nothing, reevaluation suppresses it and
      performance records one shown, one accepted and one converted line.
    negative: false
    data_needs: >-
      A run-owned workspace, named fixture products and independent caller grants; deterministic
      clock for dated cases.
    bound_to:
      - TST-COM-CAT-135
    provenance: test
    source:
      - 'services-commerce:modules/recommendations/tests/e2e/offers.e2e.spec.js'
    assertions:
      - expect: >-
          One mug line retains the offer, repetition adds nothing, reevaluation suppresses it and
          performance records one shown, one accepted and one converted line.
        provenance: test
        source:
          - 'services-commerce:modules/recommendations/tests/e2e/offers.e2e.spec.js'
  - id: FAS-COM-CAT-05-02
    title: A presentation protects rule substance before an offer response
    kind: interaction
    exercises:
      - CAP-COM-CAT-019
      - CAP-COM-CAT-020
    relies_on:
      - ATS-COM-CAT-019-05
      - ATS-COM-CAT-020-01
    preconditions: A rule can be evaluated live or previewed by staff.
    steps:
      - do: >-
          Preview and edit its substance; evaluate live and attempt another substance edit; edit
          only its message and accept the presentation.
        provenance: proposed
        source:
          - >-
            rhythm-v2-docs:specs/commerce/catalog/design/tests/ATS-COM-CAT-019-configure-what-is-recommended-where.md#ATS-COM-CAT-019-05
          - >-
            rhythm-v2-docs:specs/commerce/catalog/design/tests/ATS-COM-CAT-020-offer-suggestions-to-a-buyer-and-record-the-answer.md#ATS-COM-CAT-020-01
    expected: >-
      Preview does not protect substance; live presentation protects it while message editing and an
      authorized response remain available.
    negative: false
    data_needs: >-
      A run-owned workspace, named fixture products and independent caller grants; deterministic
      clock for dated cases.
    bound_to: []
    provenance: proposed
    source:
      - >-
        rhythm-v2-docs:specs/commerce/catalog/design/tests/ATS-COM-CAT-019-configure-what-is-recommended-where.md#ATS-COM-CAT-019-05
      - >-
        rhythm-v2-docs:specs/commerce/catalog/design/tests/ATS-COM-CAT-020-offer-suggestions-to-a-buyer-and-record-the-answer.md#ATS-COM-CAT-020-01
    assertions:
      - expect: >-
          Preview does not protect substance; live presentation protects it while message editing
          and an authorized response remain available.
        provenance: proposed
        source:
          - >-
            rhythm-v2-docs:specs/commerce/catalog/design/tests/ATS-COM-CAT-019-configure-what-is-recommended-where.md#ATS-COM-CAT-019-05
          - >-
            rhythm-v2-docs:specs/commerce/catalog/design/tests/ATS-COM-CAT-020-offer-suggestions-to-a-buyer-and-record-the-answer.md#ATS-COM-CAT-020-01
  - id: FAS-COM-CAT-05-03
    title: Rule and response states change later suppression
    kind: lifecycle
    exercises:
      - CAP-COM-CAT-019
      - CAP-COM-CAT-020
    relies_on:
      - ATS-COM-CAT-019-04
      - ATS-COM-CAT-020-02
      - ATS-COM-CAT-020-03
    preconditions: A compatible rule is active and one member has a shown offer.
    steps:
      - do: >-
          Pause and resume the rule, dismiss the offer twice, reevaluate inside its dismissal window
          and request first acceptance of a separately expired offer.
        provenance: proposed
        source:
          - >-
            rhythm-v2-docs:specs/commerce/catalog/design/tests/ATS-COM-CAT-019-configure-what-is-recommended-where.md#ATS-COM-CAT-019-04
          - >-
            rhythm-v2-docs:specs/commerce/catalog/design/tests/ATS-COM-CAT-020-offer-suggestions-to-a-buyer-and-record-the-answer.md#ATS-COM-CAT-020-02
          - >-
            rhythm-v2-docs:specs/commerce/catalog/design/tests/ATS-COM-CAT-020-offer-suggestions-to-a-buyer-and-record-the-answer.md#ATS-COM-CAT-020-03
    expected: >-
      A paused rule produces no live offer; resumption restores eligibility, dismissal suppresses
      and expired first acceptance refuses.
    negative: true
    data_needs: >-
      A run-owned workspace, named fixture products and independent caller grants; deterministic
      clock for dated cases.
    bound_to: []
    provenance: proposed
    source:
      - >-
        rhythm-v2-docs:specs/commerce/catalog/design/tests/ATS-COM-CAT-019-configure-what-is-recommended-where.md#ATS-COM-CAT-019-04
      - >-
        rhythm-v2-docs:specs/commerce/catalog/design/tests/ATS-COM-CAT-020-offer-suggestions-to-a-buyer-and-record-the-answer.md#ATS-COM-CAT-020-02
      - >-
        rhythm-v2-docs:specs/commerce/catalog/design/tests/ATS-COM-CAT-020-offer-suggestions-to-a-buyer-and-record-the-answer.md#ATS-COM-CAT-020-03
    assertions:
      - expect: >-
          A paused rule produces no live offer; resumption restores eligibility, dismissal
          suppresses and expired first acceptance refuses.
        provenance: proposed
        source:
          - >-
            rhythm-v2-docs:specs/commerce/catalog/design/tests/ATS-COM-CAT-019-configure-what-is-recommended-where.md#ATS-COM-CAT-019-04
          - >-
            rhythm-v2-docs:specs/commerce/catalog/design/tests/ATS-COM-CAT-020-offer-suggestions-to-a-buyer-and-record-the-answer.md#ATS-COM-CAT-020-02
          - >-
            rhythm-v2-docs:specs/commerce/catalog/design/tests/ATS-COM-CAT-020-offer-suggestions-to-a-buyer-and-record-the-answer.md#ATS-COM-CAT-020-03
  - id: FAS-COM-CAT-05-04
    title: Reading offers does not permit responding or launching
    kind: permission
    exercises:
      - CAP-COM-CAT-019
      - CAP-COM-CAT-020
    relies_on:
      - ATS-COM-CAT-019-07
      - ATS-COM-CAT-020-06
    preconditions: A rule reader and an offer reader have no write or response grants.
    steps:
      - do: >-
          List rules and placements, attempt rule creation and activation, evaluate an offer and
          attempt acceptance as the offer reader.
        provenance: test
        source:
          - 'services-commerce:modules/recommendations/tests/e2e/recommendations-security.e2e.spec.js'
    expected: 'Authorized reads and evaluation succeed; creation, activation and acceptance refuse.'
    negative: true
    data_needs: >-
      A run-owned workspace, named fixture products and independent caller grants; deterministic
      clock for dated cases.
    bound_to:
      - TST-COM-CAT-137
    provenance: test
    source:
      - 'services-commerce:modules/recommendations/tests/e2e/recommendations-security.e2e.spec.js'
    assertions:
      - expect: 'Authorized reads and evaluation succeed; creation, activation and acceptance refuse.'
        provenance: test
        source:
          - 'services-commerce:modules/recommendations/tests/e2e/recommendations-security.e2e.spec.js'
  - id: FAS-COM-CAT-05-05
    title: Anonymous estimates remain unavailable for acceptance
    kind: regression
    exercises:
      - CAP-COM-CAT-019
      - CAP-COM-CAT-020
    relies_on:
      - ATS-COM-CAT-019-02
      - ATS-COM-CAT-020-04
    preconditions: An active rule is bound to a public placement and a private cart placement.
    steps:
      - do: >-
          Evaluate the public placement anonymously, try to accept the estimate after sign-in and
          evaluate the private placement anonymously.
        provenance: test
        source:
          - 'services-commerce:modules/recommendations/tests/e2e/offers.e2e.spec.js'
    expected: >-
      The estimate has the public amount, acceptance requires a live signed subject and the private
      placement refuses.
    negative: false
    data_needs: >-
      A run-owned workspace, named fixture products and independent caller grants; deterministic
      clock for dated cases.
    bound_to:
      - TST-COM-CAT-135
    provenance: test
    source:
      - 'services-commerce:modules/recommendations/tests/e2e/offers.e2e.spec.js'
    assertions:
      - expect: >-
          The estimate has the public amount, acceptance requires a live signed subject and the
          private placement refuses.
        provenance: test
        source:
          - 'services-commerce:modules/recommendations/tests/e2e/offers.e2e.spec.js'
evidence:
  - >-
    rhythm-v2-docs:specs/commerce/catalog/planning/capabilities/CAP-COM-CAT-019-configure-what-is-recommended-where.md#CAP-COM-CAT-019
  - >-
    rhythm-v2-docs:specs/commerce/catalog/planning/capabilities/CAP-COM-CAT-020-offer-suggestions-to-a-buyer-and-record-the-answer.md#CAP-COM-CAT-020
---

# Contextual Suggestions: Feature Acceptance Suite

## What the Feature Must Do as a Whole

An offered item becomes one attributable order line. The suite follows changes through the feature’s saved configuration, assessments and retained outcomes. It combines the detailed capability scenarios into customer-visible checks and keeps unbound chains proposed.

## Interactions Between Capabilities

A presentation protects rule substance before an offer response. Each interaction checks both the changed input and the dependent outcome; an isolated capability result alone is insufficient. Lifecycle and permission cases revisit the same boundary after a state or authority change.

## Regression Record

| Revision | Change | Scenario | Why |
|---|---|---|---|
| 1 | initial | all | Establish cumulative coverage from the landed feature and capability contracts. |
