GitHub

MockDaffCompositeProductFacade

import { MockDaffCompositeProductFacade } from '@daffodil/product-composite/state/testing'
@Injectable()
class MockDaffCompositeProductFacade implements DaffCompositeProductFacadeInterface {
  getRequiredItemPricesForConfiguration(
    id: string
    configuration?: Dictionary<DaffCompositeConfigurationItem>
  ): BehaviorSubject<DaffPriceRange>
  getOptionalItemPricesForConfiguration(
    id: string
    configuration?: Dictionary<DaffCompositeConfigurationItem>
  ): BehaviorSubject<DaffPriceRange>
  getPricesAsCurrentlyConfigured(id: string): BehaviorSubject<DaffPriceRange>
  getAppliedOptions(id: string): BehaviorSubject<Dictionary<DaffCompositeProductItemOption>>
  getDiscountAmount(id: string): BehaviorSubject<number>
  getDiscountPercent(id: string): BehaviorSubject<number>
  isItemRequired(
    id: string
    item_id: string
  ): BehaviorSubject<boolean>
  dispatch(action)
  hasDiscount(priceRange: DaffPriceRange): boolean
  hasPriceRange(priceRange: DaffPriceRange): boolean
}

Properties

Name Type Description
getRequiredItemPricesForConfiguration BehaviorSubject<DaffPriceRange>

Get a DaffPriceRange for a composite product based on the configuration provided excluding unselected, optional item prices.

getOptionalItemPricesForConfiguration BehaviorSubject<DaffPriceRange>

Get the broadest possible DaffPriceRange for a composite product based on the configuration provided including optional item prices.

getPricesAsCurrentlyConfigured BehaviorSubject<DaffPriceRange>

Get the DaffPriceRange for a composite product based on the current configuration of selected item options in redux state and excluding unselected, optional item prices.

getAppliedOptions BehaviorSubject<Dictionary<DaffCompositeProductItemOption>>

Returns the applied options for a composite product.

getDiscountAmount BehaviorSubject<number>

Returns the discount amount of a composite product based on the current configuration of the selected item options in redux state and excluding unselected, optional item prices. Will return undefined if all required options are not chosen.

getDiscountPercent BehaviorSubject<number>

Returns the discount percent of a composite product based on the current configuration of the selected item options in redux state and excluding unselected, optional item prices. Will return undefined if all required options are not chosen. Note: This percent is computed client-side and should be treated as an estimate rather than an exact value.

isItemRequired BehaviorSubject<boolean>

Returns whether the item of a composite product is required.

dispatch
hasDiscount boolean

Returns whether a DaffPriceRange has a discount.

hasPriceRange boolean

Returns whether the min and max prices of a DaffPriceRange are different.