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

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