Skip to content

ATS-COM-CAT-010Configure qualifying price audiences: Capability Test Specification

Markdown

ATS-COM-CAT-010

Configure qualifying price audiences: Capability Test Specification

Markdown
  • DocumentProposed
  • Product intentProposed

KindAcceptance test setProduct areaCommerceModuleCatalog and Selling ConfigurationRevision2

Read atservices-commerce c8b66a98react-console baf6dae3

Coverage

  • Rule covered
  • Transition covered
  • Validation covered
  • Permission covered
  • Edge covered
  • Failure gap: FND-COM-CAT-064
  • Boundary gap: FND-COM-CAT-064
  • Concurrency gap: FND-COM-CAT-064
  • Invariant covered
  • Interaction covered

Test Scenarios

13 scenarios proving CAP-COM-CAT-010; 7 bound to an existing test.

01 Built-in audiences retain identity and kindinvariantapinegativetest
Proves
BR-CAP-COM-CAT-010-01 INV-DOM-COM-CAT-004-01
Preconditions
A fresh workspace initializes audiences
Steps
List audiences, change Member’s kind and delete Standard
Expected
Built-in ranks are present and both prohibited mutations fail
Data
none
Bound to
Source
services-commerce:modules/pricing/tests/e2e/pricing-audiences.e2e.spec.js#lists standard for everyone at rank 0 and member by eligibility at rank 10, built in, member shown to visitors, with no binding yet
02 Audience rank and normalized name conflicts are refusedvalidationapinegativetest
Proves
BR-CAP-COM-CAT-010-02 BR-CAP-COM-CAT-010-03 INV-DOM-COM-CAT-004-02
Preconditions
Member occupies rank ten and its name
Steps
Create another audience at ten and under a spaced case variant of Member
Expected
Both refusals identify the conflict
Data
none
Bound to
Source
services-commerce:modules/pricing/tests/e2e/pricing-audiences.e2e.spec.js#answers 400 with the problem code audience_rank_taken to a rank another audience holds, creating nothing
03 Audience qualification fields follow the chosen kindvalidationapinegativetest
Proves
BR-CAP-COM-CAT-010-04
Preconditions
Audience creation can select different kinds
Steps
Omit operations for an operation audience and bind eligibility to an everyone audience
Expected
Both inconsistent definitions fail
Data
none
Bound to
Source
services-commerce:modules/pricing/tests/integration/db/member-pricing-tables.table.integration.spec.js#refuses an operation audience without an operation, and operations on another kind, by pricing_audiences_operations_check
04 Deactivation preserves prices while removing qualificationtransitionapinegativetest
Proves
BR-CAP-COM-CAT-010-05 BR-CAP-COM-CAT-010-06 AS-JNY-COM-CAT-002-01
Preconditions
Retiree is referenced by a product price
Steps
Attempt deletion, deactivate the audience and price the buyer
Expected
Deletion reports usage; deactivation succeeds and pricing excludes the inactive audience
Data
A product price row
Bound to
Source
services-commerce:modules/pricing/tests/e2e/pricing-audiences.e2e.spec.js#refuses the delete 409 audience_in_use with the sentence and the details
05 Unbound eligibility produces a warning rather than qualificationedgeunittest
Proves
BR-CAP-COM-CAT-010-07
Preconditions
An eligibility audience has no binding selected
Steps
Resolve qualification for a buyer
Expected
The audience is absent from qualification and identified in a warning
Data
none
Bound to
Source
services-commerce:modules/pricing/tests/unit/engine/step-2-audience-resolution.spec.js#warns of an audience with no binding, and holds nobody for it; a binding the batch did not answer is simply not held
06 Audience writes require permission and current versionpermissionapinegativetest
Proves
BR-CAP-COM-CAT-010-10 BR-CAP-COM-CAT-010-11
Preconditions
A reader and version-two audience are available
Steps
Write as the reader and replace from version one
Expected
Permission and concurrency refusals prevent both changes
Data
Read-exclusively persona
Bound to
Source
services-commerce:modules/pricing/tests/e2e/pricing-configuration-security.e2e.spec.js#is refused the creates, replacements and deletes, 403 permission_missing, each leaving the record as it was
07 Audience editing returns to the saved viewrulebrowsertest
Proves
AS-JNY-COM-CAT-002-02
Preconditions
The browser uses Commerce mock fixtures
Steps
Open an audience, edit it and save
Expected
The full-width view presents the changed information
Data
Console mock
Bound to
Source
react-console:e2e/mock/commerce-view-edit.mock.spec.ts#open an audience on a full-width view, edit it and save back to the view
08 Audience protection refuses the protected writeinvariantapinegativeproposed
Proves
BR-CAP-COM-CAT-010-12
Preconditions
Separate otherwise editable records use full protection and deletion-only protection.
Steps
Replace and delete the fully protected record, then replace and delete the deletion-only protected record; reread both.
Expected
The full-protection requests refuse; the deletion-only replacement succeeds and removal refuses; refused writes preserve the stored record.
Data
Run-owned workspace and records; fixed clock where dates are exercised.
Source
services-commerce:modules/pricing/services/persistence/pricing-audiences.ts
09 Audience deactivation changes a configured price strategyinteractionapiproposed
Proves
BR-CAP-COM-CAT-010-06 BR-CAP-COM-CAT-012-03
Preconditions
Member and Student qualify for one product.
Steps
Select rank pricing, deactivate the first audience, quote, reactivate and quote again.
Expected
The inactive audience is skipped without losing its stored price and returns to selection after reactivation.
Data
Run-owned workspace and records; fixed clock where dates are exercised.
Source
services-commerce:modules/pricing/tests/integration/services/inputs/pricing-inputs.integration.spec.js#loads the active audiences in rank order, the inactive left out, and the period each schedule is in at the instant,services-commerce:modules/pricing/tests/e2e/product-purchasing-settings.e2e.spec.js#prices the same buyer at the member price under rank, Member coming before Student members
10 Removing an audience binding removes qualificationinteractionapiproposed
Proves
BR-CAP-COM-CAT-010-07 BR-CAP-COM-CAT-013-02
Preconditions
An eligibility audience has a selected binding and a price.
Steps
Quote an eligible buyer, remove the binding, then quote again.
Expected
The second quote omits that audience and explains the missing binding.
Data
Run-owned workspace and records; fixed clock where dates are exercised.
Source
services-commerce:modules/pricing/tests/unit/engine/step-2-audience-resolution.spec.js#warns of an audience with no binding, and holds nobody for it; a binding the batch did not answer is simply not held,services-commerce:modules/pricing/tests/unit/engine/step-2-audience-resolution.spec.js#does not qualify for an ineligible decision, an indeterminate one, a provisional one or one under review, and says why
11 Provisioning reruns preserve audience and placement editsinteractionapiproposed
Proves
BR-CAP-COM-CAT-010-01 BR-CAP-COM-CAT-019-02
Preconditions
A new workspace has built-in audiences and storefront placements.
Steps
Change a permitted audience field and a placement cap; rerun both seed operations and verify setup.
Expected
Required setup exists once and the customer’s saved settings remain.
Data
Run-owned workspace and records; fixed clock where dates are exercised.
Source
services-commerce:modules/pricing/tests/e2e/pricing-audiences.e2e.spec.js#lists standard for everyone at rank 0 and member by eligibility at rank 10, built in, member shown to visitors, with no binding yet,services-commerce:modules/recommendations/tests/e2e/recommendation-rules.e2e.spec.js#refuses a cap above the placement’s, 400 max_offers_exceeds_placement
12 Special-price handover realization is exercised across every declared movetransitionapinegativeproposed
Proves
BR-CAP-COM-CAT-010-01 BR-CAP-COM-CAT-010-02
Preconditions
Independent run-owned records start in each declared origin state; guarded variants omit one required condition at a time.
Steps
For each transition case, establish the origin, apply its trigger with the guard satisfied, read the resulting state and side effects, then repeat on a separate record with a required guard absent.
Expected
Every allowed case reaches its stated destination and retains its declared side effects; failed guards preserve the originating record except for the separately documented partial offer action.
Data
Run-owned workspace and records; fixed clock where dates are exercised.
Source
rhythm-v2-docs:specs/commerce/catalog/design/state-models/STATE-COM-CAT-006-special-price-handover-realization.md#STATE-COM-CAT-006,services-commerce:modules/pricing/tests/integration/services/handovers/audience-handover-realization.integration.spec.js#leaves a handover whose rank another audience of the tenant holds, naming the rank,services-commerce:modules/pricing/tests/integration/services/handovers/audience-handover-realization.integration.spec.js#leaves a handover whose rank another audience of the tenant holds, naming the rank,services-commerce:modules/pricing/services/handovers/audience-handover-realization.ts,services-commerce:modules/pricing/services/handovers/audience-handover-realization.ts,services-commerce:modules/pricing/services/handovers/audience-handover-realization.ts
13 Deactivation preserves a referenced audience priceinvariantapinegativeproposed
Proves
INV-DOM-COM-CAT-004-03 BR-CAP-COM-CAT-010-05
Preconditions
A product price refers to Retiree and the buyer qualifies.
Steps
Request audience deletion, deactivate and quote, inspect the price row, reactivate and quote again.
Expected
Deletion identifies the retaining product, the price row survives and the audience returns to qualification after reactivation.
Data
Run-owned workspace and records; fixed clock where dates are exercised.
Source
services-commerce:modules/pricing/tests/integration/services/persistence/pricing-audiences.integration.spec.js#refuses 409 audience_in_use, naming the products and their count, and keeps the audience,rhythm-v2-docs:specs/commerce/catalog/design/objects/DOM-COM-CAT-004-price.md#DOM-COM-CAT-004

The Markdown files under specs/ in rhythmsoftware/rhythm-v2-docs are the canonical source of truth. This reader is a generated, read-only projection of them.