All files / src/api/createCart index.ts

100% Statements 13/13
100% Branches 4/4
100% Functions 1/1
100% Lines 11/11

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38  50x 50x 50x 50x           50x 2x   2x               2x   2x             2x           50x  
import { CartDraft } from './../../types/GraphQL';
import { apolloClient, getSettings } from './../../index';
import { getCustomQuery } from './../../helpers/queries';
import defaultQuery from './defaultMutation';
import gql from 'graphql-tag';
 
interface CartData extends Omit<CartDraft, 'currency'> {
  currency?: string;
}
 
const createCart = async (cartDraft: CartData = {}, customQueryFn?) => {
  const { locale, acceptLanguage, currency } = getSettings();
 
  const defaultVariables = {
    acceptLanguage,
    locale,
    draft: {
      currency,
      ...cartDraft
    }
  };
  const { query, variables } = getCustomQuery(customQueryFn, { defaultQuery, defaultVariables });
 
  const request = await apolloClient.mutate({
    mutation: gql`
      ${query}
    `,
    variables,
    fetchPolicy: 'no-cache'
  });
  return {
    variables,
    ...request
  };
};
 
export default createCart;