/* eslint-disable @typescript-eslint/no-non-null-assertion */ import { test as base } from '@graphcommerce/magento-store/test/apolloClientStore.fixture' import type { ProductTypenames } from '../components/ProductStaticPaths/getProductStaticPaths' import { ProductStaticPathsDocument } from '../components/ProductStaticPaths/ProductStaticPaths.gql' import { productLink } from '../hooks/useProductLink' type ProductUrls = { all: string[] } & Record<`${ProductTypenames}`, string> const test = base.extend<{ productURL: ProductUrls }>({ productURL: async ({ apolloClient, baseURL }, use) => { const query = await apolloClient.query({ query: ProductStaticPathsDocument, variables: { currentPage: 1, pageSize: 300 }, }) const productUrls: Partial> = {} const urls = (query.data.products?.items ?? []).map((p) => { productUrls[`${p?.__typename}`] = `${baseURL}${productLink(p!)}` return `${baseURL}${productLink(p!)}` }) await use({ all: urls, ...productUrls } as ProductUrls) }, }) export { test }