create-upload-post-data.spec.ts 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. import gql from 'graphql-tag';
  2. import { CREATE_ASSETS } from '../../admin-ui/src/app/data/definitions/product-definitions';
  3. import { createUploadPostData } from './create-upload-post-data';
  4. describe('createUploadPostData()', () => {
  5. it('creates correct output for createAssets mutation', () => {
  6. const result = createUploadPostData(CREATE_ASSETS, ['a.jpg', 'b.jpg'], filePaths => ({
  7. input: filePaths.map(() => ({ file: null })),
  8. }));
  9. expect(result.operations.operationName).toBe('CreateAssets');
  10. expect(result.operations.variables).toEqual({
  11. input: [{ file: null }, { file: null }],
  12. });
  13. expect(result.map).toEqual({
  14. 0: 'variables.input.0.file',
  15. 1: 'variables.input.1.file',
  16. });
  17. expect(result.filePaths).toEqual([{ name: '0', file: 'a.jpg' }, { name: '1', file: 'b.jpg' }]);
  18. });
  19. it('creates correct output for importProducts mutation', () => {
  20. const result = createUploadPostData(
  21. gql`
  22. mutation ImportProducts($input: Upload!) {
  23. importProducts(csvFile: $input) {
  24. errors
  25. importedCount
  26. }
  27. }
  28. `,
  29. 'data.csv',
  30. () => ({ csvFile: null }),
  31. );
  32. expect(result.operations.operationName).toBe('ImportProducts');
  33. expect(result.operations.variables).toEqual({ csvFile: null });
  34. expect(result.map).toEqual({
  35. 0: 'variables.csvFile',
  36. });
  37. expect(result.filePaths).toEqual([{ name: '0', file: 'data.csv' }]);
  38. });
  39. });