From 8c6f2754ddfb77fec9651daab63c9d977668f0a4 Mon Sep 17 00:00:00 2001 From: DuvCharles Date: Fri, 30 Sep 2022 13:41:57 +0200 Subject: [PATCH] feat: mock hooks --- packages/sylius/src/auth/use-login.tsx | 16 +++++++ packages/sylius/src/auth/use-logout.tsx | 17 ++++++++ packages/sylius/src/auth/use-signup.tsx | 19 ++++++++ packages/sylius/src/cart/index.ts | 4 ++ packages/sylius/src/cart/use-add-item.tsx | 17 ++++++++ packages/sylius/src/cart/use-cart.tsx | 42 ++++++++++++++++++ packages/sylius/src/cart/use-remove-item.tsx | 20 +++++++++ packages/sylius/src/cart/use-update-item.tsx | 20 +++++++++ packages/sylius/src/checkout/use-checkout.tsx | 16 +++++++ .../src/customer/address/use-add-item.tsx | 17 ++++++++ .../sylius/src/customer/card/use-add-item.tsx | 17 ++++++++ packages/sylius/src/customer/index.ts | 1 + packages/sylius/src/customer/use-customer.tsx | 17 ++++++++ packages/sylius/src/product/use-price.tsx | 2 + packages/sylius/src/product/use-search.tsx | 17 ++++++++ packages/sylius/src/provider.ts | 2 +- packages/sylius/src/wishlist/use-add-item.tsx | 13 ++++++ .../sylius/src/wishlist/use-remove-item.tsx | 17 ++++++++ packages/sylius/src/wishlist/use-wishlist.tsx | 43 +++++++++++++++++++ 19 files changed, 316 insertions(+), 1 deletion(-) create mode 100644 packages/sylius/src/auth/use-login.tsx create mode 100644 packages/sylius/src/auth/use-logout.tsx create mode 100644 packages/sylius/src/auth/use-signup.tsx create mode 100644 packages/sylius/src/cart/index.ts create mode 100644 packages/sylius/src/cart/use-add-item.tsx create mode 100644 packages/sylius/src/cart/use-cart.tsx create mode 100644 packages/sylius/src/cart/use-remove-item.tsx create mode 100644 packages/sylius/src/cart/use-update-item.tsx create mode 100644 packages/sylius/src/checkout/use-checkout.tsx create mode 100644 packages/sylius/src/customer/address/use-add-item.tsx create mode 100644 packages/sylius/src/customer/card/use-add-item.tsx create mode 100644 packages/sylius/src/customer/index.ts create mode 100644 packages/sylius/src/customer/use-customer.tsx create mode 100644 packages/sylius/src/product/use-price.tsx create mode 100644 packages/sylius/src/product/use-search.tsx create mode 100644 packages/sylius/src/wishlist/use-add-item.tsx create mode 100644 packages/sylius/src/wishlist/use-remove-item.tsx create mode 100644 packages/sylius/src/wishlist/use-wishlist.tsx diff --git a/packages/sylius/src/auth/use-login.tsx b/packages/sylius/src/auth/use-login.tsx new file mode 100644 index 000000000..20e3ed229 --- /dev/null +++ b/packages/sylius/src/auth/use-login.tsx @@ -0,0 +1,16 @@ +import { MutationHook } from '@vercel/commerce/utils/types' +import useLogin, { UseLogin } from '@vercel/commerce/auth/use-login' + +export default useLogin as UseLogin + +export const handler: MutationHook = { + fetchOptions: { + query: '', + }, + async fetcher() { + return null + }, + useHook: () => () => { + return async function () {} + }, +} diff --git a/packages/sylius/src/auth/use-logout.tsx b/packages/sylius/src/auth/use-logout.tsx new file mode 100644 index 000000000..4e74908f3 --- /dev/null +++ b/packages/sylius/src/auth/use-logout.tsx @@ -0,0 +1,17 @@ +import { MutationHook } from '@vercel/commerce/utils/types' +import useLogout, { UseLogout } from '@vercel/commerce/auth/use-logout' + +export default useLogout as UseLogout + +export const handler: MutationHook = { + fetchOptions: { + query: '', + }, + async fetcher() { + return null + }, + useHook: + ({ fetch }) => + () => + async () => {}, +} diff --git a/packages/sylius/src/auth/use-signup.tsx b/packages/sylius/src/auth/use-signup.tsx new file mode 100644 index 000000000..e48811403 --- /dev/null +++ b/packages/sylius/src/auth/use-signup.tsx @@ -0,0 +1,19 @@ +import { useCallback } from 'react' +import useCustomer from '../customer/use-customer' +import { MutationHook } from '@vercel/commerce/utils/types' +import useSignup, { UseSignup } from '@vercel/commerce/auth/use-signup' + +export default useSignup as UseSignup + +export const handler: MutationHook = { + fetchOptions: { + query: '', + }, + async fetcher() { + return null + }, + useHook: + ({ fetch }) => + () => + () => {}, +} diff --git a/packages/sylius/src/cart/index.ts b/packages/sylius/src/cart/index.ts new file mode 100644 index 000000000..f6d36b443 --- /dev/null +++ b/packages/sylius/src/cart/index.ts @@ -0,0 +1,4 @@ +export { default as useCart } from './use-cart' +export { default as useAddItem } from './use-add-item' +export { default as useUpdateItem } from './use-update-item' +export { default as useRemoveItem } from './use-remove-item' diff --git a/packages/sylius/src/cart/use-add-item.tsx b/packages/sylius/src/cart/use-add-item.tsx new file mode 100644 index 000000000..2be6e0aaa --- /dev/null +++ b/packages/sylius/src/cart/use-add-item.tsx @@ -0,0 +1,17 @@ +import useAddItem, { UseAddItem } from '@vercel/commerce/cart/use-add-item' +import { MutationHook } from '@vercel/commerce/utils/types' + +export default useAddItem as UseAddItem +export const handler: MutationHook = { + fetchOptions: { + query: '', + }, + async fetcher({ input, options, fetch }) {}, + useHook: + ({ fetch }) => + () => { + return async function addItem() { + return {} + } + }, +} diff --git a/packages/sylius/src/cart/use-cart.tsx b/packages/sylius/src/cart/use-cart.tsx new file mode 100644 index 000000000..8f92de3c9 --- /dev/null +++ b/packages/sylius/src/cart/use-cart.tsx @@ -0,0 +1,42 @@ +import { useMemo } from 'react' +import { SWRHook } from '@vercel/commerce/utils/types' +import useCart, { UseCart } from '@vercel/commerce/cart/use-cart' + +export default useCart as UseCart + +export const handler: SWRHook = { + fetchOptions: { + query: '', + }, + async fetcher() { + return { + id: '', + createdAt: '', + currency: { code: '' }, + taxesIncluded: '', + lineItems: [], + lineItemsSubtotalPrice: '', + subtotalPrice: 0, + totalPrice: 0, + } + }, + useHook: + ({ useData }) => + (input) => { + return useMemo( + () => + Object.create( + {}, + { + isEmpty: { + get() { + return true + }, + enumerable: true, + }, + } + ), + [] + ) + }, +} diff --git a/packages/sylius/src/cart/use-remove-item.tsx b/packages/sylius/src/cart/use-remove-item.tsx new file mode 100644 index 000000000..92d52c997 --- /dev/null +++ b/packages/sylius/src/cart/use-remove-item.tsx @@ -0,0 +1,20 @@ +import { MutationHook } from '@vercel/commerce/utils/types' +import useRemoveItem, { + UseRemoveItem, +} from '@vercel/commerce/cart/use-remove-item' + +export default useRemoveItem as UseRemoveItem + +export const handler: MutationHook = { + fetchOptions: { + query: '', + }, + async fetcher({ input, options, fetch }) {}, + useHook: + ({ fetch }) => + () => { + return async function removeItem(input) { + return {} + } + }, +} diff --git a/packages/sylius/src/cart/use-update-item.tsx b/packages/sylius/src/cart/use-update-item.tsx new file mode 100644 index 000000000..950f422e1 --- /dev/null +++ b/packages/sylius/src/cart/use-update-item.tsx @@ -0,0 +1,20 @@ +import { MutationHook } from '@vercel/commerce/utils/types' +import useUpdateItem, { + UseUpdateItem, +} from '@vercel/commerce/cart/use-update-item' + +export default useUpdateItem as UseUpdateItem + +export const handler: MutationHook = { + fetchOptions: { + query: '', + }, + async fetcher({ input, options, fetch }) {}, + useHook: + ({ fetch }) => + () => { + return async function addItem() { + return {} + } + }, +} diff --git a/packages/sylius/src/checkout/use-checkout.tsx b/packages/sylius/src/checkout/use-checkout.tsx new file mode 100644 index 000000000..76997be73 --- /dev/null +++ b/packages/sylius/src/checkout/use-checkout.tsx @@ -0,0 +1,16 @@ +import { SWRHook } from '@vercel/commerce/utils/types' +import useCheckout, { + UseCheckout, +} from '@vercel/commerce/checkout/use-checkout' + +export default useCheckout as UseCheckout + +export const handler: SWRHook = { + fetchOptions: { + query: '', + }, + async fetcher({ input, options, fetch }) {}, + useHook: + ({ useData }) => + async (input) => ({}), +} diff --git a/packages/sylius/src/customer/address/use-add-item.tsx b/packages/sylius/src/customer/address/use-add-item.tsx new file mode 100644 index 000000000..4f85c8472 --- /dev/null +++ b/packages/sylius/src/customer/address/use-add-item.tsx @@ -0,0 +1,17 @@ +import useAddItem, { + UseAddItem, +} from '@vercel/commerce/customer/address/use-add-item' +import { MutationHook } from '@vercel/commerce/utils/types' + +export default useAddItem as UseAddItem + +export const handler: MutationHook = { + fetchOptions: { + query: '', + }, + async fetcher({ input, options, fetch }) {}, + useHook: + ({ fetch }) => + () => + async () => ({}), +} diff --git a/packages/sylius/src/customer/card/use-add-item.tsx b/packages/sylius/src/customer/card/use-add-item.tsx new file mode 100644 index 000000000..77d149eff --- /dev/null +++ b/packages/sylius/src/customer/card/use-add-item.tsx @@ -0,0 +1,17 @@ +import useAddItem, { + UseAddItem, +} from '@vercel/commerce/customer/card/use-add-item' +import { MutationHook } from '@vercel/commerce/utils/types' + +export default useAddItem as UseAddItem + +export const handler: MutationHook = { + fetchOptions: { + query: '', + }, + async fetcher({ input, options, fetch }) {}, + useHook: + ({ fetch }) => + () => + async () => ({}), +} diff --git a/packages/sylius/src/customer/index.ts b/packages/sylius/src/customer/index.ts new file mode 100644 index 000000000..6c903ecc5 --- /dev/null +++ b/packages/sylius/src/customer/index.ts @@ -0,0 +1 @@ +export { default as useCustomer } from './use-customer' diff --git a/packages/sylius/src/customer/use-customer.tsx b/packages/sylius/src/customer/use-customer.tsx new file mode 100644 index 000000000..04c48943d --- /dev/null +++ b/packages/sylius/src/customer/use-customer.tsx @@ -0,0 +1,17 @@ +import { SWRHook } from '@vercel/commerce/utils/types' +import useCustomer, { + UseCustomer, +} from '@vercel/commerce/customer/use-customer' + +export default useCustomer as UseCustomer +export const handler: SWRHook = { + fetchOptions: { + query: '', + }, + async fetcher({ input, options, fetch }) {}, + useHook: () => () => { + return async function addItem() { + return {} + } + }, +} diff --git a/packages/sylius/src/product/use-price.tsx b/packages/sylius/src/product/use-price.tsx new file mode 100644 index 000000000..fd42d7033 --- /dev/null +++ b/packages/sylius/src/product/use-price.tsx @@ -0,0 +1,2 @@ +export * from '@vercel/commerce/product/use-price' +export { default } from '@vercel/commerce/product/use-price' diff --git a/packages/sylius/src/product/use-search.tsx b/packages/sylius/src/product/use-search.tsx new file mode 100644 index 000000000..b84889cca --- /dev/null +++ b/packages/sylius/src/product/use-search.tsx @@ -0,0 +1,17 @@ +import { SWRHook } from '@vercel/commerce/utils/types' +import useSearch, { UseSearch } from '@vercel/commerce/product/use-search' +export default useSearch as UseSearch + +export const handler: SWRHook = { + fetchOptions: { + query: '', + }, + async fetcher({ input, options, fetch }) {}, + useHook: () => () => { + return { + data: { + products: [], + }, + } + }, +} diff --git a/packages/sylius/src/provider.ts b/packages/sylius/src/provider.ts index fef3b3503..f5c819309 100644 --- a/packages/sylius/src/provider.ts +++ b/packages/sylius/src/provider.ts @@ -15,7 +15,7 @@ import fetcher from './fetcher' export const syliusProvider = { locale: 'en-us', - //cartCookie: CHECKOUT_ID_COOKIE, + cartCookie: 'toto', fetcher, cart: { useCart, useAddItem, useUpdateItem, useRemoveItem }, customer: { useCustomer }, diff --git a/packages/sylius/src/wishlist/use-add-item.tsx b/packages/sylius/src/wishlist/use-add-item.tsx new file mode 100644 index 000000000..75f067c3a --- /dev/null +++ b/packages/sylius/src/wishlist/use-add-item.tsx @@ -0,0 +1,13 @@ +import { useCallback } from 'react' + +export function emptyHook() { + const useEmptyHook = async (options = {}) => { + return useCallback(async function () { + return Promise.resolve() + }, []) + } + + return useEmptyHook +} + +export default emptyHook diff --git a/packages/sylius/src/wishlist/use-remove-item.tsx b/packages/sylius/src/wishlist/use-remove-item.tsx new file mode 100644 index 000000000..a2d3a8a05 --- /dev/null +++ b/packages/sylius/src/wishlist/use-remove-item.tsx @@ -0,0 +1,17 @@ +import { useCallback } from 'react' + +type Options = { + includeProducts?: boolean +} + +export function emptyHook(options?: Options) { + const useEmptyHook = async ({ id }: { id: string | number }) => { + return useCallback(async function () { + return Promise.resolve() + }, []) + } + + return useEmptyHook +} + +export default emptyHook diff --git a/packages/sylius/src/wishlist/use-wishlist.tsx b/packages/sylius/src/wishlist/use-wishlist.tsx new file mode 100644 index 000000000..b2785d46f --- /dev/null +++ b/packages/sylius/src/wishlist/use-wishlist.tsx @@ -0,0 +1,43 @@ +import { HookFetcher } from '@vercel/commerce/utils/types' +import type { Product } from '@vercel/commerce/types/product' + +const defaultOpts = {} + +export type Wishlist = { + items: [ + { + product_id: number + variant_id: number + id: number + product: Product + } + ] +} + +export interface UseWishlistOptions { + includeProducts?: boolean +} + +export interface UseWishlistInput extends UseWishlistOptions { + customerId?: number +} + +export const fetcher: HookFetcher = () => { + return null +} + +export function extendHook( + customFetcher: typeof fetcher, + // swrOptions?: SwrOptions + swrOptions?: any +) { + const useWishlist = ({ includeProducts }: UseWishlistOptions = {}) => { + return { data: null } + } + + useWishlist.extend = extendHook + + return useWishlist +} + +export default extendHook(fetcher)