GitHub

MockConfigurableProduct

Mocked DaffConfigurableProduct object.

import { MockConfigurableProduct } from '@daffodil/product-configurable/testing'
class MockConfigurableProduct extends MockProduct implements DaffConfigurableProduct {
  type: DaffProductTypeEnum.Configurable
  configurableAttributes: [
      {
          code: 'color',
          label: 'Color',
          order: 0,
          values: [
              {
                  value: '0',
                  label: 'Blue',
                  swatch: {
                      value: '#0000FF',
                      thumbnail: null
                  }
              },
              {
                  value: '1',
                  label: 'Yellow',
                  swatch: {
                      value: '#FFFF00',
                      thumbnail: null
                  }
              },
              {
                  value: '2',
                  label: 'Red',
                  swatch: {
                      value: '#FF0000',
                      thumbnail: null
                  }
              },
          ]
      },
      {
          code: 'size',
          label: 'Size',
          order: 1,
          values: [
              {
                  value: '0',
                  label: 'Small',
                  swatch: null
              },
              {
                  value: '1',
                  label: 'Medium',
                  swatch: null
              },
              {
                  value: '2',
                  label: 'Large',
                  swatch: null
              },
          ]
      },
      {
          code: 'material',
          label: 'Material',
          order: 2,
          values: [
              {
                  value: '0',
                  label: 'Cotton',
                  swatch: null
              },
              {
                  value: '1',
                  label: 'Polyester',
                  swatch: null
              },
              {
                  value: '2',
                  label: 'Spandex',
                  swatch: null
              },
          ]
      },
  ]
  variants: [
      {
          appliedAttributes: {
              color: '0',
              size: '0',
              material: '0'
          },
          price: this.stubPriceVariant1,
          discount: {
              amount: this.stubDiscountVariant1,
              percent: Math.floor((this.stubDiscountVariant1 / this.stubPriceVariant1) * 100)
          },
          id: faker.datatype.uuid(),
          in_stock: true
      },
      {
          appliedAttributes: {
              color: '0',
              size: '1',
              material: '0'
          },
          price: this.stubPriceVariant1,
          discount: {
              amount: this.stubDiscountVariant1,
              percent: Math.floor((this.stubDiscountVariant1 / this.stubPriceVariant1) * 100)
          },
          id: faker.datatype.uuid(),
          in_stock: true
      },
      {
          appliedAttributes: {
              color: '0',
              size: '1',
              material: '2'
          },
          price: this.stubPriceVariant3,
          discount: {
              amount: this.stubDiscountVariant3,
              percent: Math.floor((this.stubDiscountVariant3 / this.stubPriceVariant3) * 100)
          },
          id: faker.datatype.uuid(),
          in_stock: true
      },
      {
          appliedAttributes: {
              color: '0',
              size: '2',
              material: '0'
          },
          price: this.stubPriceVariant1,
          discount: {
              amount: this.stubDiscountVariant1,
              percent: Math.floor((this.stubDiscountVariant1 / this.stubPriceVariant1) * 100)
          },
          id: faker.datatype.uuid(),
          in_stock: true
      },
      {
          appliedAttributes: {
              color: '1',
              size: '0',
              material: '0'
          },
          price: this.stubPriceVariant1,
          discount: {
              amount: this.stubDiscountVariant1,
              percent: Math.floor((this.stubDiscountVariant1 / this.stubPriceVariant1) * 100)
          },
          id: faker.datatype.uuid(),
          in_stock: true
      },
      {
          appliedAttributes: {
              color: '1',
              size: '0',
              material: '2'
          },
          price: this.stubPriceVariant3,
          discount: {
              amount: this.stubDiscountVariant3,
              percent: Math.floor((this.stubDiscountVariant3 / this.stubPriceVariant3) * 100)
          },
          id: faker.datatype.uuid(),
          in_stock: true
      },
      {
          appliedAttributes: {
              color: '1',
              size: '2',
              material: '0'
          },
          price: this.stubPriceVariant1,
          discount: {
              amount: this.stubDiscountVariant1,
              percent: Math.floor((this.stubDiscountVariant1 / this.stubPriceVariant1) * 100)
          },
          id: faker.datatype.uuid(),
          in_stock: true
      },
      {
          appliedAttributes: {
              color: '1',
              size: '2',
              material: '1'
          },
          price: this.stubPriceVariant2,
          discount: {
              amount: this.stubDiscountVariant2,
              percent: Math.floor((this.stubDiscountVariant2 / this.stubPriceVariant2) * 100)
          },
          id: faker.datatype.uuid(),
          in_stock: true
      },
      {
          appliedAttributes: {
              color: '2',
              size: '0',
              material: '0'
          },
          price: this.stubPriceVariant3,
          discount: {
              amount: this.stubDiscountVariant3,
              percent: Math.floor((this.stubDiscountVariant3 / this.stubPriceVariant3) * 100)
          },
          id: faker.datatype.uuid(),
          in_stock: true
      },
      {
          appliedAttributes: {
              color: '2',
              size: '2',
              material: '0'
          },
          price: this.stubPriceVariant1,
          discount: {
              amount: this.stubDiscountVariant1,
              percent: Math.floor((this.stubDiscountVariant1 / this.stubPriceVariant1) * 100)
          },
          id: faker.datatype.uuid(),
          in_stock: true
      },
  ]
}

Properties

Name Type Description
type DaffProductTypeEnum.Configurable
configurableAttributes [ { code: 'color', label: 'Color', order: 0, values: [ { value: '0', label: 'Blue', swatch: { value: '#0000FF', thumbnail: null } }, { value: '1', label: 'Yellow', swatch: { value: '#FFFF00', thumbnail: null } }, { value: '2', label: 'Red', swatch: { value: '#FF0000', thumbnail: null } }, ] }, { code: 'size', label: 'Size', order: 1, values: [ { value: '0', label: 'Small', swatch: null }, { value: '1', label: 'Medium', swatch: null }, { value: '2', label: 'Large', swatch: null }, ] }, { code: 'material', label: 'Material', order: 2, values: [ { value: '0', label: 'Cotton', swatch: null }, { value: '1', label: 'Polyester', swatch: null }, { value: '2', label: 'Spandex', swatch: null }, ] }, ]
variants [ { appliedAttributes: { color: '0', size: '0', material: '0' }, price: this.stubPriceVariant1, discount: { amount: this.stubDiscountVariant1, percent: Math.floor((this.stubDiscountVariant1 / this.stubPriceVariant1) * 100) }, id: faker.datatype.uuid(), in_stock: true }, { appliedAttributes: { color: '0', size: '1', material: '0' }, price: this.stubPriceVariant1, discount: { amount: this.stubDiscountVariant1, percent: Math.floor((this.stubDiscountVariant1 / this.stubPriceVariant1) * 100) }, id: faker.datatype.uuid(), in_stock: true }, { appliedAttributes: { color: '0', size: '1', material: '2' }, price: this.stubPriceVariant3, discount: { amount: this.stubDiscountVariant3, percent: Math.floor((this.stubDiscountVariant3 / this.stubPriceVariant3) * 100) }, id: faker.datatype.uuid(), in_stock: true }, { appliedAttributes: { color: '0', size: '2', material: '0' }, price: this.stubPriceVariant1, discount: { amount: this.stubDiscountVariant1, percent: Math.floor((this.stubDiscountVariant1 / this.stubPriceVariant1) * 100) }, id: faker.datatype.uuid(), in_stock: true }, { appliedAttributes: { color: '1', size: '0', material: '0' }, price: this.stubPriceVariant1, discount: { amount: this.stubDiscountVariant1, percent: Math.floor((this.stubDiscountVariant1 / this.stubPriceVariant1) * 100) }, id: faker.datatype.uuid(), in_stock: true }, { appliedAttributes: { color: '1', size: '0', material: '2' }, price: this.stubPriceVariant3, discount: { amount: this.stubDiscountVariant3, percent: Math.floor((this.stubDiscountVariant3 / this.stubPriceVariant3) * 100) }, id: faker.datatype.uuid(), in_stock: true }, { appliedAttributes: { color: '1', size: '2', material: '0' }, price: this.stubPriceVariant1, discount: { amount: this.stubDiscountVariant1, percent: Math.floor((this.stubDiscountVariant1 / this.stubPriceVariant1) * 100) }, id: faker.datatype.uuid(), in_stock: true }, { appliedAttributes: { color: '1', size: '2', material: '1' }, price: this.stubPriceVariant2, discount: { amount: this.stubDiscountVariant2, percent: Math.floor((this.stubDiscountVariant2 / this.stubPriceVariant2) * 100) }, id: faker.datatype.uuid(), in_stock: true }, { appliedAttributes: { color: '2', size: '0', material: '0' }, price: this.stubPriceVariant3, discount: { amount: this.stubDiscountVariant3, percent: Math.floor((this.stubDiscountVariant3 / this.stubPriceVariant3) * 100) }, id: faker.datatype.uuid(), in_stock: true }, { appliedAttributes: { color: '2', size: '2', material: '0' }, price: this.stubPriceVariant1, discount: { amount: this.stubDiscountVariant1, percent: Math.floor((this.stubDiscountVariant1 / this.stubPriceVariant1) * 100) }, id: faker.datatype.uuid(), in_stock: true }, ]