<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE coverage SYSTEM "http://cobertura.sourceforge.net/xml/coverage-04.dtd">
<coverage line-rate="0.0000" branch-rate="0.0000" lines-covered="0" lines-valid="140" branches-covered="0" branches-valid="24" complexity="32" version="2.1.1" timestamp="1786000462">
  <sources>
    <source>src</source>
  </sources>
  <packages>
    <package name="cart" line-rate="0.0000" branch-rate="0.0000" complexity="11">
      <classes>
        <class name="pricing" filename="src/cart/pricing.js" line-rate="0.0000" branch-rate="0.0000" complexity="6">
          <methods>
            <method name="unitPrice" signature="()V" line-rate="0.0" branch-rate="1.0">
              <lines><line number="2" hits="0"/></lines>
            </method>
            <method name="quantityMultiplier" signature="()V" line-rate="0.0" branch-rate="1.0">
              <lines><line number="8" hits="0"/></lines>
            </method>
            <method name="roundHalfUp" signature="()V" line-rate="0.0" branch-rate="1.0">
              <lines><line number="13" hits="0"/></lines>
            </method>
            <method name="applyTax" signature="()V" line-rate="0.0" branch-rate="1.0">
              <lines><line number="19" hits="0"/></lines>
            </method>
            <method name="bulkRate" signature="()V" line-rate="0.0" branch-rate="1.0">
              <lines><line number="25" hits="0"/></lines>
            </method>
            <method name="convertCurrency" signature="()V" line-rate="0.0" branch-rate="1.0">
              <lines><line number="31" hits="0"/></lines>
            </method>
          </methods>
          <lines>
            <line number="2" hits="0" branch="false"/>
            <line number="3" hits="0" branch="false"/>
            <line number="4" hits="0" branch="false"/>
            <line number="5" hits="0" branch="true" condition-coverage="0% (0/2)"/>
            <line number="6" hits="0" branch="false"/>
            <line number="8" hits="0" branch="false"/>
            <line number="9" hits="0" branch="false"/>
            <line number="10" hits="0" branch="false"/>
            <line number="11" hits="0" branch="false"/>
            <line number="12" hits="0" branch="false"/>
            <line number="13" hits="0" branch="false"/>
            <line number="15" hits="0" branch="true" condition-coverage="0% (0/2)"/>
            <line number="16" hits="0" branch="false"/>
            <line number="17" hits="0" branch="false"/>
            <line number="18" hits="0" branch="false"/>
            <line number="19" hits="0" branch="false"/>
            <line number="20" hits="0" branch="false"/>
            <line number="22" hits="0" branch="false"/>
            <line number="23" hits="0" branch="false"/>
            <line number="24" hits="0" branch="true" condition-coverage="0% (0/2)"/>
            <line number="25" hits="0" branch="false"/>
            <line number="26" hits="0" branch="false"/>
            <line number="27" hits="0" branch="false"/>
            <line number="29" hits="0" branch="false"/>
            <line number="30" hits="0" branch="false"/>
            <line number="31" hits="0" branch="false"/>
            <line number="32" hits="0" branch="false"/>
            <line number="33" hits="0" branch="true" condition-coverage="0% (0/2)"/>
            <line number="34" hits="0" branch="false"/>
            <line number="36" hits="0" branch="false"/>
            <line number="37" hits="0" branch="false"/>
            <line number="38" hits="0" branch="false"/>
            <line number="39" hits="0" branch="false"/>
            <line number="40" hits="0" branch="false"/>
            <line number="41" hits="0" branch="false"/>
            <line number="43" hits="0" branch="false"/>
            <line number="44" hits="0" branch="false"/>
            <line number="45" hits="0" branch="false"/>
            <line number="46" hits="0" branch="false"/>
            <line number="47" hits="0" branch="false"/>
            <line number="48" hits="0" branch="false"/>
            <line number="50" hits="0" branch="false"/>
            <line number="51" hits="0" branch="false"/>
            <line number="52" hits="0" branch="false"/>
          </lines>
        </class>
        <class name="discounts" filename="src/cart/discounts.js" line-rate="0.0000" branch-rate="0.0000" complexity="5">
          <methods>
            <method name="percentageDiscount" signature="()V" line-rate="0.0" branch-rate="1.0">
              <lines><line number="2" hits="0"/></lines>
            </method>
            <method name="stackDiscounts" signature="()V" line-rate="0.0" branch-rate="1.0">
              <lines><line number="8" hits="0"/></lines>
            </method>
            <method name="isCouponExpired" signature="()V" line-rate="0.0" branch-rate="1.0">
              <lines><line number="13" hits="0"/></lines>
            </method>
            <method name="loyaltyTier" signature="()V" line-rate="0.0" branch-rate="1.0">
              <lines><line number="19" hits="0"/></lines>
            </method>
            <method name="freeShippingThreshold" signature="()V" line-rate="0.0" branch-rate="1.0">
              <lines><line number="25" hits="0"/></lines>
            </method>
          </methods>
          <lines>
            <line number="2" hits="0" branch="false"/>
            <line number="3" hits="0" branch="false"/>
            <line number="4" hits="0" branch="false"/>
            <line number="5" hits="0" branch="true" condition-coverage="0% (0/2)"/>
            <line number="6" hits="0" branch="false"/>
            <line number="8" hits="0" branch="false"/>
            <line number="9" hits="0" branch="false"/>
            <line number="10" hits="0" branch="false"/>
            <line number="11" hits="0" branch="false"/>
            <line number="12" hits="0" branch="false"/>
            <line number="13" hits="0" branch="false"/>
            <line number="15" hits="0" branch="true" condition-coverage="0% (0/2)"/>
            <line number="16" hits="0" branch="false"/>
            <line number="17" hits="0" branch="false"/>
            <line number="18" hits="0" branch="false"/>
            <line number="19" hits="0" branch="false"/>
            <line number="20" hits="0" branch="false"/>
            <line number="22" hits="0" branch="false"/>
            <line number="23" hits="0" branch="false"/>
            <line number="24" hits="0" branch="true" condition-coverage="0% (0/2)"/>
            <line number="25" hits="0" branch="false"/>
            <line number="26" hits="0" branch="false"/>
            <line number="27" hits="0" branch="false"/>
            <line number="29" hits="0" branch="false"/>
            <line number="30" hits="0" branch="false"/>
            <line number="31" hits="0" branch="false"/>
            <line number="32" hits="0" branch="false"/>
            <line number="33" hits="0" branch="false"/>
            <line number="34" hits="0" branch="false"/>
            <line number="36" hits="0" branch="false"/>
            <line number="37" hits="0" branch="false"/>
            <line number="38" hits="0" branch="false"/>
            <line number="39" hits="0" branch="false"/>
          </lines>
        </class>
      </classes>
    </package>
    <package name="checkout" line-rate="0.0000" branch-rate="0.0000" complexity="9">
      <classes>
        <class name="session" filename="src/checkout/session.js" line-rate="0.0000" branch-rate="0.0000" complexity="6">
          <methods>
            <method name="createSession" signature="()V" line-rate="0.0" branch-rate="1.0">
              <lines><line number="2" hits="0"/></lines>
            </method>
            <method name="expireSession" signature="()V" line-rate="0.0" branch-rate="1.0">
              <lines><line number="8" hits="0"/></lines>
            </method>
            <method name="restoreCart" signature="()V" line-rate="0.0" branch-rate="1.0">
              <lines><line number="13" hits="0"/></lines>
            </method>
            <method name="rotateToken" signature="()V" line-rate="0.0" branch-rate="1.0">
              <lines><line number="19" hits="0"/></lines>
            </method>
            <method name="persistCart" signature="()V" line-rate="0.0" branch-rate="1.0">
              <lines><line number="25" hits="0"/></lines>
            </method>
            <method name="readSessionCookie" signature="()V" line-rate="0.0" branch-rate="1.0">
              <lines><line number="31" hits="0"/></lines>
            </method>
          </methods>
          <lines>
            <line number="2" hits="0" branch="false"/>
            <line number="3" hits="0" branch="false"/>
            <line number="4" hits="0" branch="false"/>
            <line number="5" hits="0" branch="true" condition-coverage="0% (0/2)"/>
            <line number="6" hits="0" branch="false"/>
            <line number="8" hits="0" branch="false"/>
            <line number="9" hits="0" branch="false"/>
            <line number="10" hits="0" branch="false"/>
            <line number="11" hits="0" branch="false"/>
            <line number="12" hits="0" branch="false"/>
            <line number="13" hits="0" branch="false"/>
            <line number="15" hits="0" branch="true" condition-coverage="0% (0/2)"/>
            <line number="16" hits="0" branch="false"/>
            <line number="17" hits="0" branch="false"/>
            <line number="18" hits="0" branch="false"/>
            <line number="19" hits="0" branch="false"/>
            <line number="20" hits="0" branch="false"/>
            <line number="22" hits="0" branch="false"/>
            <line number="23" hits="0" branch="false"/>
            <line number="24" hits="0" branch="true" condition-coverage="0% (0/2)"/>
            <line number="25" hits="0" branch="false"/>
            <line number="26" hits="0" branch="false"/>
            <line number="27" hits="0" branch="false"/>
            <line number="29" hits="0" branch="false"/>
            <line number="30" hits="0" branch="false"/>
            <line number="31" hits="0" branch="false"/>
            <line number="32" hits="0" branch="false"/>
            <line number="33" hits="0" branch="false"/>
            <line number="34" hits="0" branch="false"/>
            <line number="36" hits="0" branch="false"/>
            <line number="37" hits="0" branch="false"/>
            <line number="38" hits="0" branch="false"/>
            <line number="39" hits="0" branch="false"/>
            <line number="40" hits="0" branch="false"/>
            <line number="41" hits="0" branch="false"/>
            <line number="43" hits="0" branch="false"/>
            <line number="44" hits="0" branch="false"/>
            <line number="45" hits="0" branch="false"/>
            <line number="46" hits="0" branch="false"/>
          </lines>
        </class>
        <class name="receipt" filename="src/checkout/receipt.js" line-rate="0.0000" branch-rate="0.0000" complexity="3">
          <methods>
            <method name="renderTotals" signature="()V" line-rate="0.0" branch-rate="1.0">
              <lines><line number="2" hits="0"/></lines>
            </method>
            <method name="renderLineItems" signature="()V" line-rate="0.0" branch-rate="1.0">
              <lines><line number="8" hits="0"/></lines>
            </method>
            <method name="formatCurrency" signature="()V" line-rate="0.0" branch-rate="1.0">
              <lines><line number="13" hits="0"/></lines>
            </method>
          </methods>
          <lines>
            <line number="2" hits="0" branch="false"/>
            <line number="3" hits="0" branch="false"/>
            <line number="4" hits="0" branch="false"/>
            <line number="5" hits="0" branch="true" condition-coverage="0% (0/2)"/>
            <line number="6" hits="0" branch="false"/>
            <line number="8" hits="0" branch="false"/>
            <line number="9" hits="0" branch="false"/>
            <line number="10" hits="0" branch="false"/>
            <line number="11" hits="0" branch="false"/>
            <line number="12" hits="0" branch="false"/>
            <line number="13" hits="0" branch="false"/>
            <line number="15" hits="0" branch="true" condition-coverage="0% (0/2)"/>
            <line number="16" hits="0" branch="false"/>
            <line number="17" hits="0" branch="false"/>
            <line number="18" hits="0" branch="false"/>
            <line number="19" hits="0" branch="false"/>
            <line number="20" hits="0" branch="false"/>
            <line number="22" hits="0" branch="false"/>
            <line number="23" hits="0" branch="false"/>
            <line number="24" hits="0" branch="false"/>
            <line number="25" hits="0" branch="false"/>
            <line number="26" hits="0" branch="false"/>
            <line number="27" hits="0" branch="false"/>
            <line number="29" hits="0" branch="false"/>
          </lines>
        </class>
      </classes>
    </package>
  </packages>
</coverage>
