import gql from 'graphql-tag'; import { startSessionAnonymously } from 'test/graphql'; import { getCustomRepository } from 'typeorm'; import { RetailerProductSource } from '@/entities/types'; import { RetailerProductVariantRepository } from '@/repositories'; import { RetailerKind } from '@/types'; describe('Query:retailerProductVariants', () => { const query = gql` query { retailerProductVariants { edges { node { id } } } } `; test('should return retailer variant products', async () => { const { execute } = await startSessionAnonymously(); const retailerProductVariantRepo = getCustomRepository( RetailerProductVariantRepository ); const { retailerProductVariantId } = await retailerProductVariantRepo.upsert({ retailer: RetailerKind.PERIGOLD, productIdentifiers: ['test'], variantIdentifiers: ['test1-x'], data: { asin: 'asin', colorCode: 'colorCode', annotations: 'annotation', price: 100, description: 'description', dimensions: 'dimensions', discoverable: true, distributor: 'distributor', distributorSKU: 'distributor', imageUrls: ['http://test.com/test.jpg'], isAvailable: true, name: 'test', url: 'https://www.amazon.com/Haussmann-Twist-Stool-High-Walnut/dp/B00KRY0SY2', }, source: RetailerProductSource.GOOGLE_SHOPPING, }); const response = await execute({ query: query, }); expect(response.errors?.length).toBeFalsy(); expect(response.data?.retailerProductVariants?.edges).toHaveLength(1); const ids = response.data?.retailerProductVariants?.edges?.map( (e: any) => e.node.id ); expect(ids).toContain(retailerProductVariantId); }); }); describe('Query:retailerProductVariant', () => { const query = gql` query ($input: RetailerProductVariantInput!) { retailerProductVariant(input: $input) { retailerProductVariant { id name } } } `; test('should return retailer product variants', async () => { const { execute } = await startSessionAnonymously(); const retailerProductVariantRepo = getCustomRepository( RetailerProductVariantRepository ); const { retailerProductVariantId } = await retailerProductVariantRepo.upsert({ retailer: RetailerKind.PERIGOLD, productIdentifiers: ['test'], variantIdentifiers: ['test1-x'], data: { asin: 'asin', colorCode: 'colorCode', annotations: 'annotation', price: 100, description: 'description', dimensions: 'dimensions', discoverable: true, distributor: 'distributor', distributorSKU: 'distributor', imageUrls: ['http://test.com/test.jpg'], isAvailable: true, name: 'test', url: 'https://www.amazon.com/Haussmann-Twist-Stool-High-Walnut/dp/B00KRY0SY2', }, source: RetailerProductSource.GOOGLE_SHOPPING, }); const response = await execute({ query: query, variables: { input: { id: retailerProductVariantId, }, }, }); expect(response.errors?.length).toBeFalsy(); expect( response.data?.retailerProductVariant.retailerProductVariant.id ).toBe(retailerProductVariantId); }); });