PluginProbe ʕ •ᴥ•ʔ
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments / 4.5.0
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments v4.5.0
4.5.1 4.5.0 4.4.2 4.4.1 4.4.0 4.3.3 4.3.2 4.3.1 4.3.0 4.2.3 4.2.2 4.2.1 1.0.3 1.0.4 1.0.5 1.0.6 1.1.0 1.1.1 1.1.10 1.1.11 1.1.12 1.1.13 1.1.14 1.1.15 1.1.16 1.1.17 1.1.18 1.1.19 1.1.2 1.1.3 1.1.4 1.1.5 1.1.6 1.1.7 1.1.8 1.1.9 1.10.0 1.10.1 1.10.2 1.10.3 1.10.4 1.11.0 1.11.1 1.11.2 1.2.0 1.2.1 1.2.2 1.2.3 1.2.4 1.2.5 1.3.0 1.3.1 1.3.2 1.3.3 1.3.4 1.4.0 1.4.1 1.4.2 1.5.0 1.5.1 1.5.2 1.5.3 1.5.4 1.5.5 1.5.6 1.5.7 1.5.8 1.6.0 1.6.1 1.6.2 1.6.3 1.6.4 1.7.0 1.7.1 1.7.2 1.8.0 1.8.1 1.8.2 1.8.3 1.8.4 1.8.5 1.9.0 1.9.1 1.9.2 1.9.3 1.9.4 1.9.5 2.0.0 2.0.1 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.10.0 2.10.1 2.11.0 2.11.1 2.11.2 2.11.3 2.11.4 2.12.0 2.13.0 2.14.0 2.14.1 2.15.0 2.15.1 2.16.0 2.16.1 2.16.2 2.16.3 2.17.0 2.17.1 2.17.2 2.18.0 2.19.0 2.19.2 2.19.3 2.19.4 2.2.0 2.2.1 2.20.0 2.20.1 2.20.2 2.20.3 2.20.4 2.20.5 2.20.6 2.21.0 2.22.0 2.22.1 2.23.0 2.24.0 2.25.0 2.25.1 2.25.2 2.26.0 2.27.0 2.27.1 2.28.0 2.29.0 2.29.1 2.29.2 2.29.3 2.29.4 2.3.0 2.3.1 2.30.0 2.31.0 2.31.1 2.31.2 2.31.3 2.4.0 2.4.1 2.4.2 2.4.3 2.4.4 2.40.0 2.40.1 2.5.0 2.5.1 2.5.2 2.6.0 2.6.1 2.6.2 2.7.0 2.7.1 2.7.2 2.7.3 2.7.4 2.7.5 2.8.0 2.8.1 2.8.2 2.8.3 2.8.4 2.9.0 3.0.0 3.0.0-RC1 3.0.0-RC2 3.0.0-beta1 3.0.0-beta2 3.0.1 3.0.2 3.0.3 3.0.4 3.0.5 3.1.0 3.1.1 3.1.2 3.1.3 3.1.4 3.1.5 3.1.6 3.10.0 3.10.1 3.11.0 3.12.0 3.13.0 3.13.1 3.13.2 3.13.3 3.13.4 3.14.0 3.15.0 3.15.1 3.15.2 3.15.3 3.15.4 3.15.5 3.16.0 3.16.1 3.16.2 3.16.3 3.16.4 3.16.5 3.16.6 3.16.7 3.16.8 3.17.0 3.17.1 3.17.2 3.17.3 3.17.4 3.17.5 3.17.6 3.18.0 3.19.0 3.19.1 3.19.2 3.2.0 3.2.1 3.2.2 3.20.0 3.20.1 3.3.0 3.3.1 3.4.0 3.4.1 3.4.2 3.4.3 3.5.0 3.5.1 3.5.2 3.5.3 3.6.0 3.6.1 3.6.2 3.7.0 3.7.1 3.7.2 3.7.3 3.8.0 3.8.1 3.8.2 3.8.3 3.8.4 3.8.5 3.9.0 4.0.0 4.0.1 4.0.2 4.0.3 trunk 4.1.0 0.2.19.1 4.1.1 1.0.0 4.2.0 1.0.1 1.0.2
surecart / dist / components / collection / store / test / utils.spec.js
surecart / dist / components / collection / store / test Last commit date
utils.spec.js 2 months ago utils.spec.js.map 2 months ago
utils.spec.js
1 lines
1 import{isProductVariantOptionSoldOut}from"../utils";const makeProduct=(t={})=>({id:"prod_1",has_unlimited_stock:!1,available_stock:10,variants:{data:[]},...t}),makeVariant=(t={})=>({id:"var_1",option_1:"Small",option_2:null,option_3:null,has_unlimited_stock:!1,available_stock:5,...t});describe("isProductVariantOptionSoldOut",(()=>{it("returns false when variant has stock",(()=>{const t=makeProduct({variants:{data:[makeVariant({option_1:"Small",available_stock:5})]}});expect(isProductVariantOptionSoldOut(1,"Small",{},t)).toBe(!1)})),it("returns true when all matching variants have zero stock",(()=>{const t=makeProduct({variants:{data:[makeVariant({option_1:"Small",available_stock:0}),makeVariant({id:"var_2",option_1:"Small",available_stock:0})]}});expect(isProductVariantOptionSoldOut(1,"Small",{},t)).toBe(!0)})),it("returns false when no variants match the option",(()=>{const t=makeProduct({variants:{data:[makeVariant({option_1:"Large",available_stock:0})]}});expect(isProductVariantOptionSoldOut(1,"Small",{},t)).toBe(!1)})),it("returns false when variant has unlimited stock even with zero available",(()=>{const t=makeProduct({variants:{data:[makeVariant({option_1:"Small",has_unlimited_stock:!0,available_stock:0})]}});expect(isProductVariantOptionSoldOut(1,"Small",{},t)).toBe(!1)})),it("returns false when variant inherits unlimited from product",(()=>{const t=makeProduct({has_unlimited_stock:!0,variants:{data:[makeVariant({option_1:"Small",has_unlimited_stock:null,available_stock:0})]}});expect(isProductVariantOptionSoldOut(1,"Small",{},t)).toBe(!1)})),it("returns true when variant inherits tracked stock from product and is sold out",(()=>{const t=makeProduct({has_unlimited_stock:!1,variants:{data:[makeVariant({option_1:"Small",has_unlimited_stock:null,available_stock:0})]}});expect(isProductVariantOptionSoldOut(1,"Small",{},t)).toBe(!0)})),it("handles option 2 filtering correctly",(()=>{const t=makeProduct({variants:{data:[makeVariant({option_1:"Small",option_2:"Red",available_stock:0}),makeVariant({id:"var_2",option_1:"Small",option_2:"Blue",available_stock:5})]}});expect(isProductVariantOptionSoldOut(2,"Red",{option_1:"Small"},t)).toBe(!0),expect(isProductVariantOptionSoldOut(2,"Blue",{option_1:"Small"},t)).toBe(!1)})),it("handles option 3 filtering correctly",(()=>{const t=makeProduct({variants:{data:[makeVariant({option_1:"Small",option_2:"Red",option_3:"Cotton",available_stock:0}),makeVariant({id:"var_2",option_1:"Small",option_2:"Red",option_3:"Silk",available_stock:3})]}});expect(isProductVariantOptionSoldOut(3,"Cotton",{option_1:"Small",option_2:"Red"},t)).toBe(!0),expect(isProductVariantOptionSoldOut(3,"Silk",{option_1:"Small",option_2:"Red"},t)).toBe(!1)}))}));