1
0

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

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