Skip to content

ATS-COM-FUL-010Configure shipping coverage and collection options: Capability Test Specification

Markdown

ATS-COM-FUL-010

Configure shipping coverage and collection options: Capability Test Specification

Markdown
  • DocumentProposed

KindAcceptance test setProduct areaCommerceModuleFulfillment, Shipping and InventoryRevision2

Read atservices-commerce c8b66a98react-console baf6dae3

Coverage

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

Test Scenarios

8 scenarios proving CAP-COM-FUL-010; 5 bound to an existing test.

01 Invalid destination values fail by fieldvalidationapinegativetest
Proves
BR-CAP-COM-FUL-010-01
Preconditions
An administrator can configure zones.
Steps
Submit lowercase country codes and blank region or prefix values, then clear a description explicitly.
Expected
Malformed fields fail validation and the explicit clearing value removes the description.
Data
Fixtures for invalid destination values fail by field.
Bound to
services-commerce:modules/shipping/tests/integration/db/shipping-tables.table.integration.spec.js#refuses a zone naming a country that is not two upper-case letters, by shipping_zones_country_codes_check
services-commerce:modules/shipping/tests/unit/api/blank-shipping-configuration-values.spec.js#refuses a zone with region_codes [""] 400 naming region_codes, instead of making a zone of no region
services-commerce:modules/shipping/tests/unit/api/blank-shipping-configuration-values.spec.js#refuses a whitespace-only postal code prefix on a zone replacement, naming postal_code_prefixes
services-commerce:modules/shipping/tests/unit/api/blank-shipping-configuration-values.spec.js#clears a zone’s description on an explicit null, the one way to clear it
services-commerce:modules/shipping/tests/e2e/shipping.e2e.spec.js#refuses a zone with a blank region code 400 naming region_codes and creates nothing; a blank description on a replacement 400, only null clearing it (Q06)
Source
services-commerce:modules/shipping/tests/integration/db/shipping-tables.table.integration.spec.js#refuses a zone naming a country that is not two upper-case letters, by shipping_zones_country_codes_check
02 Zone version and deletion guards preserve configurationconcurrencyapinegativetest
Proves
BR-CAP-COM-FUL-010-02 BR-CAP-COM-FUL-010-03 INV-DOM-COM-FUL-004-11
Preconditions
A zone owns shipping strategies.
Steps
Try duplicate identity, stale replacement and zone deletion.
Expected
Identity and version conflicts fail, while successful deletion removes the dependent strategies.
Data
Fixtures for zone version and deletion guards preserve configuration.
Bound to
services-commerce:modules/shipping/tests/integration/services/persistence/shipping-configuration.integration.spec.js#writes the zone under the id its name suggests, the countries upper-cased, at version 1
services-commerce:modules/shipping/tests/integration/db/shipping-tables.table.integration.spec.js#refuses deleting an account a strategy rates through (RESTRICT), by shipping_strategies_carrier_account_fk, and cascades a zone’s strategies with the zone
Source
services-commerce:modules/shipping/tests/integration/services/persistence/shipping-configuration.integration.spec.js#writes the zone under the id its name suggests, the countries upper-cased, at version 1
03 Strategy validation includes pickup dependenciesvalidationapinegativetest
Proves
BR-CAP-COM-FUL-010-04 BR-CAP-COM-FUL-010-05 INV-DOM-COM-FUL-004-11 INV-DOM-COM-FUL-004-12
Preconditions
A zone and warehouse exist.
Steps
Try unsupported kinds, unordered bands, missing carrier account, charged pickup and two pickup destinations, then delete a referenced warehouse.
Expected
Invalid strategies and dependent-warehouse deletion are rejected.
Data
Fixtures for strategy validation includes pickup dependencies.
Bound to
services-commerce:modules/shipping/tests/integration/services/persistence/shipping-configuration.integration.spec.js#holds the rules before the row: bands in ascending order with the open one last, a carrier naming its account, no bands on a flat one
services-commerce:modules/shipping/tests/e2e/shipping.e2e.spec.js#refuses a strategy of a kind outside the four 400, and one whose bands are out of order 400
services-commerce:modules/shipping/tests/integration/db/shipping-tables.table.integration.spec.js#holds a carrier strategy to naming its account and a flat one to naming none, by shipping_strategies_carrier_check
services-commerce:modules/shipping/tests/integration/db/shipping-tables.table.integration.spec.js#holds a pickup strategy to naming where the buyer collects and charging nothing, by shipping_strategies_pickup_check
services-commerce:modules/shipping/tests/integration/db/shipping-tables.table.integration.spec.js#refuses a pickup at a warehouse the tenant does not have, by shipping_strategies_pickup_warehouse_fk, and a warehouse delete while a pickup names it (RESTRICT)
services-commerce:modules/shipping/tests/integration/services/persistence/shipping-configuration.integration.spec.js#holds a pickup strategy’s rules before the row: a location named, one only, no charge; and a shipped kind naming none
Source
services-commerce:modules/shipping/tests/integration/services/persistence/shipping-configuration.integration.spec.js#holds the rules before the row: bands in ascending order with the open one last, a carrier naming its account, no bands on a flat one
04 Carrier configuration retains connection references without secretsinvariantapinegativetest
Proves
BR-CAP-COM-FUL-010-06 BR-CAP-COM-FUL-010-07 BR-CAP-COM-FUL-010-08 INV-DOM-COM-FUL-004-10 INV-DOM-COM-FUL-004-11
Preconditions
An administrator can manage carrier accounts.
Steps
Try an unknown carrier, markup above 100 percent, absent UPS connection, connection removal and referenced-account deletion.
Expected
Invalid or dependent changes fail and valid reads expose references without credentials.
Data
Fixtures for carrier configuration retains connection references without secrets.
Bound to
services-commerce:modules/shipping/tests/integration/db/shipping-tables.table.integration.spec.js#refuses a carrier outside the six and a markup above 100 %, by carrier_accounts_carrier_check and carrier_accounts_markup_check
services-commerce:modules/shipping/tests/e2e/shipping.e2e.spec.js#answers the carrier account with its connection reference and never a secret
services-commerce:modules/shipping/tests/integration/services/persistence/shipping-configuration.integration.spec.js#refuses a UPS account without its Integration Platform connection 400 connection_required, writing nothing
services-commerce:modules/shipping/tests/integration/services/persistence/shipping-configuration.integration.spec.js#refuses a replacement that takes a UPS account’s connection away 400 connection_required, the account unchanged
services-commerce:modules/shipping/tests/integration/services/persistence/shipping-configuration.integration.spec.js#writes an account with its connection reference and shipper number and no secret, lists by carrier, and refuses deleting one a strategy rates through (409)
Source
services-commerce:modules/shipping/tests/integration/db/shipping-tables.table.integration.spec.js#refuses a carrier outside the six and a markup above 100 %, by carrier_accounts_carrier_check and carrier_accounts_markup_check
05 Configuration access separates reads from writespermissionapinegativetest
Proves
BR-CAP-COM-FUL-010-09
Preconditions
Reader, application-denied and unauthenticated identities are available.
Steps
Exercise list, detail and mutation requests under each identity.
Expected
Only authorized reading is allowed to the reader, and denied or missing identities fail.
Data
Fixtures for configuration access separates reads from writes.
Bound to
services-commerce:modules/shipping/tests/e2e/shipping.e2e.spec.js#lets a reader list and read, refuses the reader every write 403 permission_missing, a denied principal 403 app_not_permitted, and no context 401
Source
services-commerce:modules/shipping/tests/e2e/shipping.e2e.spec.js#lets a reader list and read, refuses the reader every write 403 permission_missing, a denied principal 403 app_not_permitted, and no context 401
06 Changing an active zone changes the buyer optionsinteractionapiproposed
Proves
BR-CAP-COM-FUL-010-10 BR-CAP-COM-FUL-011-02
Preconditions
A physical cart address matches a configured shipping zone.
Steps
Preview, deactivate the matching zone, preview again, then restore it.
Expected
The offered options follow the configuration changes and the absent match carries the no-coverage warning.
Data
An isolated workspace with the products, records, authority and quantities described in the preconditions.
Source
services-commerce:modules/shipping/tests/integration/services/persistence/shipping-configuration.integration.spec.js#writes the zone under the id its name suggests, the countries upper-cased, at version 1,services-commerce:modules/shipping/tests/unit/rating/zone-strategy-rating.spec.js#matches a zone naming nothing to every address, and to no address at all
07 The account selected by shipping configuration supplies label invocationinteractionapiproposed
Proves
BR-CAP-COM-FUL-010-07 BR-CAP-COM-FUL-013-06
Preconditions
A packed carrier shipment references a UPS account connected through the integration service.
Steps
Purchase a label with the invocation grant, then use an account without a valid connection or grant.
Expected
The connected purchase records a label; the invalid configuration makes no carrier request.
Data
An isolated workspace with the products, records, authority and quantities described in the preconditions.
Source
services-commerce:modules/shipping/tests/integration/db/shipping-tables.table.integration.spec.js#refuses a carrier outside the six and a markup above 100 %, by carrier_accounts_carrier_check and carrier_accounts_markup_check,services-commerce:modules/shipping/tests/unit/carriers/carrier-adapters.spec.js#buys a label through shipping.label.purchase@1 under the label’s key, the shipment as the subject
08 A configured collection place prevents its removalinteractionapiproposed
Proves
BR-CAP-COM-FUL-016-03 BR-CAP-COM-FUL-010-05
Preconditions
An active warehouse is referenced by a pickup strategy.
Steps
Attempt to delete the warehouse, remove the strategy and retry deletion after clearing other dependencies.
Expected
The first deletion fails; dependency-free deletion succeeds.
Data
An isolated workspace with the products, records, authority and quantities described in the preconditions.
Source
services-commerce:modules/inventory/tests/e2e/inventory.e2e.spec.js#reads the warehouse made with the shelf, lists it, replaces it at the version read (a stale one 409) and refuses its delete while locations belong to it (409),services-commerce:modules/shipping/tests/integration/services/persistence/shipping-configuration.integration.spec.js#holds the rules before the row: bands in ascending order with the open one last, a carrier naming its account, no bands on a flat one

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.