All files / src/api/createCart index.ts

100% Statements 14/14
100% Branches 4/4
100% Functions 1/1
100% Lines 10/10

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    4x 4x 4x           4x 2x   2x               2x   2x           2x     4x  
import { CartDraft } from '../../types/GraphQL';
import { CustomQueryFn } 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 ({ config, client }, cartDraft: CartData = {}, customQueryFn?: CustomQueryFn) => {
  const { locale, acceptLanguage, currency } = config;
 
  const defaultVariables = {
    acceptLanguage,
    locale,
    draft: {
      currency,
      ...cartDraft
    }
  };
  const { query, variables } = getCustomQuery(customQueryFn, { defaultQuery, defaultVariables });
 
  const request = await client.mutate({
    mutation: gql`${query}`,
    variables,
    fetchPolicy: 'no-cache'
  });
 
  return request;
};
 
export default createCart;