@atlaskit/media-test-helpers 29.0.1 → 29.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (84) hide show
  1. package/CHANGELOG.md +34 -0
  2. package/dist/cjs/MockGlobalImage.js +3 -1
  3. package/dist/cjs/clipboardEventMocks.js +1 -1
  4. package/dist/cjs/example-mediaFeatureFlags.js +2 -2
  5. package/dist/cjs/featureFlagsWrapper/dropdown.js +7 -7
  6. package/dist/cjs/featureFlagsWrapper/helpers.js +2 -2
  7. package/dist/cjs/fileReader.js +5 -4
  8. package/dist/cjs/fileStateFactory/createFileState.js +93 -0
  9. package/dist/cjs/fileStateFactory/factory.js +174 -0
  10. package/dist/cjs/fileStateFactory/helpers.js +110 -0
  11. package/dist/cjs/fileStateFactory/index.js +41 -0
  12. package/dist/cjs/index.js +39 -1
  13. package/dist/cjs/keyboardEventWithKeyCode.js +5 -3
  14. package/dist/cjs/mediaClientErrors.js +10 -4
  15. package/dist/cjs/mediaPickerMocks.js +2 -2
  16. package/dist/cjs/mockData/index.js +4 -3
  17. package/dist/cjs/mockData/matchers.js +4 -6
  18. package/dist/cjs/mockLoadImage.js +2 -2
  19. package/dist/cjs/mocks/fileAndDirectoriesUtils.js +2 -2
  20. package/dist/cjs/mocks/media-mock.js +1 -1
  21. package/dist/cjs/mocks/routers/api-router.js +2 -2
  22. package/dist/cjs/mocks/websockets/remote-upload-server.js +4 -2
  23. package/dist/cjs/mountWithIntlContext.js +7 -4
  24. package/dist/cjs/renderWithIntl.js +22 -0
  25. package/dist/cjs/smart-card-state.js +108 -0
  26. package/dist/cjs/story-styles.js +2 -2
  27. package/dist/cjs/styled.js +2 -2
  28. package/dist/cjs/version.json +1 -1
  29. package/dist/es2019/featureFlagsWrapper/dropdown.js +3 -3
  30. package/dist/es2019/fileStateFactory/createFileState.js +78 -0
  31. package/dist/es2019/fileStateFactory/factory.js +87 -0
  32. package/dist/es2019/fileStateFactory/helpers.js +86 -0
  33. package/dist/es2019/fileStateFactory/index.js +3 -0
  34. package/dist/es2019/index.js +3 -2
  35. package/dist/es2019/mediaClientErrors.js +3 -2
  36. package/dist/es2019/mockData/matchers.js +1 -1
  37. package/dist/es2019/mocks/media-mock.js +1 -1
  38. package/dist/es2019/renderWithIntl.js +8 -0
  39. package/dist/es2019/smart-card-state.js +100 -0
  40. package/dist/es2019/story-styles.js +1 -1
  41. package/dist/es2019/styled.js +1 -1
  42. package/dist/es2019/version.json +1 -1
  43. package/dist/esm/MockGlobalImage.js +2 -1
  44. package/dist/esm/clipboardEventMocks.js +1 -1
  45. package/dist/esm/example-mediaFeatureFlags.js +2 -2
  46. package/dist/esm/featureFlagsWrapper/dropdown.js +3 -3
  47. package/dist/esm/featureFlagsWrapper/helpers.js +2 -2
  48. package/dist/esm/fileReader.js +4 -3
  49. package/dist/esm/fileStateFactory/createFileState.js +80 -0
  50. package/dist/esm/fileStateFactory/factory.js +161 -0
  51. package/dist/esm/fileStateFactory/helpers.js +96 -0
  52. package/dist/esm/fileStateFactory/index.js +3 -0
  53. package/dist/esm/index.js +3 -2
  54. package/dist/esm/keyboardEventWithKeyCode.js +4 -3
  55. package/dist/esm/mediaClientErrors.js +6 -3
  56. package/dist/esm/mediaPickerMocks.js +2 -2
  57. package/dist/esm/mockData/index.js +3 -2
  58. package/dist/esm/mockData/matchers.js +1 -1
  59. package/dist/esm/mockLoadImage.js +2 -2
  60. package/dist/esm/mocks/fileAndDirectoriesUtils.js +2 -2
  61. package/dist/esm/mocks/media-mock.js +1 -1
  62. package/dist/esm/mocks/routers/api-router.js +2 -2
  63. package/dist/esm/mocks/websockets/remote-upload-server.js +4 -2
  64. package/dist/esm/mountWithIntlContext.js +6 -4
  65. package/dist/esm/renderWithIntl.js +8 -0
  66. package/dist/esm/smart-card-state.js +100 -0
  67. package/dist/esm/story-styles.js +1 -1
  68. package/dist/esm/styled.js +1 -1
  69. package/dist/esm/version.json +1 -1
  70. package/dist/types/featureFlagsWrapper/helpers.d.ts +1 -1
  71. package/dist/types/fileStateFactory/createFileState.d.ts +10 -0
  72. package/dist/types/fileStateFactory/factory.d.ts +42 -0
  73. package/dist/types/fileStateFactory/helpers.d.ts +7 -0
  74. package/dist/types/fileStateFactory/index.d.ts +4 -0
  75. package/dist/types/index.d.ts +3 -1
  76. package/dist/types/mediaClientErrors.d.ts +2 -1
  77. package/dist/types/renderWithIntl.d.ts +3 -0
  78. package/dist/types/smart-card-state.d.ts +2 -0
  79. package/dist/types/story-styles.d.ts +2 -2
  80. package/dist/types/styled.d.ts +1 -1
  81. package/package.json +13 -12
  82. package/renderWithIntl/package.json +7 -0
  83. package/smart-card-state/package.json +7 -0
  84. package/typings/uuid.d.ts +0 -1
@@ -0,0 +1,86 @@
1
+ import { v4 as uuidv4 } from 'uuid';
2
+ export const defaultFileDetails = {
3
+ createdAt: 1630986510989,
4
+ mediaType: 'image',
5
+ mimeType: 'image/png',
6
+ name: 'file-name.png',
7
+ size: 1
8
+ }; // min inclusive / max exclusive
9
+
10
+ function random(min = 0, max = 10000) {
11
+ min = Math.ceil(min);
12
+ max = Math.floor(max) - 1;
13
+ const result = Math.floor(Math.random() * (max - min + 1)) + min;
14
+ return result;
15
+ }
16
+
17
+ const getRandomElem = arr => arr[Math.floor(Math.random() * arr.length)];
18
+
19
+ export const createIdentifier = ({
20
+ collectionName = `collection-${random()}`,
21
+ occurrenceKey = `occurrence-${random()}`
22
+ } = {}) => ({
23
+ mediaItemType: 'file',
24
+ id: uuidv4(),
25
+ collectionName,
26
+ occurrenceKey
27
+ });
28
+
29
+ const generateFileName = extension => {
30
+ const fileNames = ['quick-and-dirty', 'quality-time', 'down-for-the-count', 'hard-pill-to-swallow', 'between-a-rock-and-a-hard-place', 'fish-out-of-water', 'top-drawer', 'like-father-like-son', 'mountain-out-of-a-molehill', 'under-your-nose', 'a-chip-on-your-shoulder', 'hit-below-the-belt'];
31
+ return `${getRandomElem(fileNames)}.${extension}`;
32
+ };
33
+
34
+ const mediaTypesDetails = {
35
+ image: {
36
+ ext: 'png',
37
+ mimeType: 'image/png'
38
+ },
39
+ video: {
40
+ ext: 'mp4',
41
+ mimeType: 'video/mp4'
42
+ },
43
+ doc: {
44
+ ext: 'pdf',
45
+ mimeType: 'application/pdf'
46
+ },
47
+ unknown: {
48
+ ext: 'unknown',
49
+ mimeType: 'unknown'
50
+ },
51
+ audio: {
52
+ ext: 'mp3',
53
+ mimeType: 'audio/mpeg'
54
+ },
55
+ archive: {
56
+ ext: 'zip',
57
+ mimeType: 'application/zip'
58
+ }
59
+ };
60
+ const mediaTypes = Object.keys(mediaTypesDetails);
61
+
62
+ const generateMediaTypeDetails = mediaType => {
63
+ const {
64
+ mimeType,
65
+ ext
66
+ } = mediaTypesDetails[mediaType];
67
+ return {
68
+ mimeType,
69
+ name: generateFileName(ext)
70
+ };
71
+ };
72
+
73
+ export const createFileDetails = (id, mediaType = getRandomElem(mediaTypes)) => {
74
+ const {
75
+ mimeType,
76
+ name
77
+ } = generateMediaTypeDetails(mediaType);
78
+ return {
79
+ id,
80
+ createdAt: random(),
81
+ size: random(),
82
+ name,
83
+ mediaType,
84
+ mimeType
85
+ };
86
+ };
@@ -0,0 +1,3 @@
1
+ export { FileStateFactory, MediaClientMock } from './factory';
2
+ export { createIdentifier, createFileDetails } from './helpers';
3
+ export { createFileState } from './createFileState';
@@ -36,5 +36,6 @@ export { enableMockGlobalImage, disableMockGlobalImage } from './MockGlobalImage
36
36
  export { exampleMediaFeatureFlags } from './example-mediaFeatureFlags';
37
37
  export { dataURItoBlob } from './mockData/utils';
38
38
  export { mapDataUriToBlob } from './utils/index';
39
- export { createPollingMaxAttemptsError, createRateLimitedError } from './mediaClientErrors';
40
- export { default as FeatureFlagsWrapper } from './featureFlagsWrapper';
39
+ export { createPollingMaxAttemptsError, createRateLimitedError, createMediaStoreError } from './mediaClientErrors';
40
+ export { default as FeatureFlagsWrapper } from './featureFlagsWrapper';
41
+ export { FileStateFactory, MediaClientMock, createIdentifier, createFileDetails, createFileState } from './fileStateFactory';
@@ -1,5 +1,6 @@
1
- import { RequestError, PollingError } from '@atlaskit/media-client';
1
+ import { RequestError, PollingError, MediaStoreError } from '@atlaskit/media-client';
2
2
  export const createRateLimitedError = (metadata = {}) => new RequestError('serverRateLimited', { ...metadata,
3
3
  statusCode: 429
4
4
  });
5
- export const createPollingMaxAttemptsError = (attempts = 1) => new PollingError('pollingMaxAttemptsExceeded', attempts);
5
+ export const createPollingMaxAttemptsError = (attempts = 1) => new PollingError('pollingMaxAttemptsExceeded', attempts);
6
+ export const createMediaStoreError = () => new MediaStoreError('missingInitialAuth');
@@ -1,4 +1,4 @@
1
- import matches from 'lodash/matches';
1
+ import { matches } from '@atlaskit/media-common';
2
2
  export const matchMethod = (req, data) => {
3
3
  return data.method ? data.method === req.method() : true;
4
4
  };
@@ -81,7 +81,7 @@ export function generateFilesFromTestData(files) {
81
81
  return {
82
82
  id,
83
83
  blob,
84
- mimeType: blob && blob.type || 'inode/x-empty',
84
+ mimeType: blob && blob.type || file.mimeType || 'inode/x-empty',
85
85
  mediaType,
86
86
  name,
87
87
  size: blob && blob.size || 0,
@@ -0,0 +1,8 @@
1
+ import React from 'react';
2
+ import { IntlProvider } from 'react-intl-next';
3
+ import { render } from '@testing-library/react';
4
+ export const renderWithIntl = component => {
5
+ return render( /*#__PURE__*/React.createElement(IntlProvider, {
6
+ locale: "en"
7
+ }, component));
8
+ };
@@ -0,0 +1,100 @@
1
+ export const url = 'https://bitbucket.org/atlassian/incredible-monorepo/pull-requests/42';
2
+ export const cardState = {
3
+ status: 'resolved',
4
+ lastUpdatedAt: 1624877833614,
5
+ details: {
6
+ meta: {
7
+ access: 'granted',
8
+ visibility: 'restricted',
9
+ auth: [{
10
+ key: 'bitbucket',
11
+ displayName: 'Atlassian Links - Bitbucket',
12
+ url: 'https://id.stg.internal.atlassian.com/outboundAuth/start?containerId=4d6a1ee9-20b3-492f-a0b6-3bab6c763a8e_3f823978-fbc9-4baa-95e2-1b4c89a73027&serviceKey=bitbucket'
13
+ }],
14
+ definitionId: 'a2d59c5a-952f-4996-8cf6-1d0ad318731a',
15
+ key: 'bitbucket-object-provider',
16
+ resourceType: 'pull',
17
+ version: '2.0.2'
18
+ },
19
+ data: {
20
+ '@id': url,
21
+ '@context': {
22
+ '@vocab': 'https://www.w3.org/ns/activitystreams#',
23
+ atlassian: 'https://schema.atlassian.com/ns/vocabulary#',
24
+ schema: 'http://schema.org/'
25
+ },
26
+ '@type': ['Object', 'atlassian:SourceCodePullRequest'],
27
+ url,
28
+ attributedTo: {
29
+ '@type': 'Person',
30
+ name: 'Matt Turner',
31
+ image: 'https://avatar-management--avatars.us-west-2.prod.public.atl-paas.net/initials/MT-4.png'
32
+ },
33
+ 'schema:dateCreated': '2019-12-12T03:20:14.858Z',
34
+ generator: {
35
+ '@type': 'Application',
36
+ name: 'Bitbucket',
37
+ icon: {
38
+ '@type': 'Image',
39
+ url: 'https://wac-cdn.atlassian.com/assets/img/favicons/bitbucket/favicon-32x32.png'
40
+ }
41
+ },
42
+ icon: {
43
+ '@type': 'Image',
44
+ url: 'https://wac-cdn.atlassian.com/assets/img/favicons/bitbucket/favicon-32x32.png'
45
+ },
46
+ name: 'Normalise package config',
47
+ summary: '',
48
+ 'atlassian:mergeSource': {
49
+ '@type': 'Link',
50
+ href: 'https://bitbucket.org/atlassian/incredible-monorepo/branch/normalise-package-config'
51
+ },
52
+ 'atlassian:mergeDestination': {
53
+ '@type': 'Link',
54
+ href: 'https://bitbucket.org/atlassian/incredible-monorepo/branch/master'
55
+ },
56
+ updated: '2019-12-12T03:40:43.420Z',
57
+ 'atlassian:mergeCommit': {
58
+ '@type': 'Link',
59
+ href: 'https://bitbucket.org/atlassian/incredible-monorepo/commits/56139bbc3793'
60
+ },
61
+ 'atlassian:internalId': '42',
62
+ 'atlassian:isMerged': true,
63
+ 'atlassian:state': 'MERGED',
64
+ 'atlassian:mergedBy': {
65
+ '@type': 'Person',
66
+ name: 'Matt Turner',
67
+ image: 'https://avatar-management--avatars.us-west-2.prod.public.atl-paas.net/initials/MT-4.png'
68
+ },
69
+ 'atlassian:reviewer': [{
70
+ '@type': 'Person',
71
+ name: 'ᴄᴏsᴍᴏ',
72
+ image: 'https://avatar-management--avatars.us-west-2.prod.public.atl-paas.net/default-avatar-1.png'
73
+ }],
74
+ 'atlassian:reviewedBy': [{
75
+ '@type': 'Person',
76
+ name: 'ᴄᴏsᴍᴏ',
77
+ image: 'https://avatar-management--avatars.us-west-2.prod.public.atl-paas.net/default-avatar-1.png'
78
+ }],
79
+ 'atlassian:updatedBy': {
80
+ '@type': 'Person',
81
+ name: 'Matt Turner',
82
+ image: 'https://avatar-management--avatars.us-west-2.prod.public.atl-paas.net/initials/MT-4.png'
83
+ },
84
+ audience: [{
85
+ '@type': 'Person',
86
+ name: 'Matt Turner',
87
+ image: 'https://avatar-management--avatars.us-west-2.prod.public.atl-paas.net/initials/MT-4.png'
88
+ }, {
89
+ '@type': 'Person',
90
+ name: 'ᴄᴏsᴍᴏ',
91
+ image: 'https://avatar-management--avatars.us-west-2.prod.public.atl-paas.net/default-avatar-1.png'
92
+ }],
93
+ context: {
94
+ '@type': 'atlassian:SourceCodeRepository',
95
+ name: 'incredible-monorepo',
96
+ url: 'https://bitbucket.org/atlassian/incredible-monorepo'
97
+ }
98
+ }
99
+ }
100
+ };
@@ -1,4 +1,4 @@
1
- import styled from 'styled-components';
1
+ import styled from '@emotion/styled';
2
2
  export const Matrix = styled.table`
3
3
  thead {
4
4
  td {
@@ -1,4 +1,4 @@
1
- import styled from 'styled-components';
1
+ import styled from '@emotion/styled';
2
2
  export const LocaleSelectorWrapper = styled.div`
3
3
  position: fixed;
4
4
  right: 20px;
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "name": "@atlaskit/media-test-helpers",
3
- "version": "29.0.1"
3
+ "version": "29.2.1"
4
4
  }
@@ -1,3 +1,4 @@
1
+ import _createClass from "@babel/runtime/helpers/createClass";
1
2
  import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
2
3
  import _inherits from "@babel/runtime/helpers/inherits";
3
4
  import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstructorReturn";
@@ -27,7 +28,7 @@ var MockImage = /*#__PURE__*/function (_global$Image) {
27
28
  return _this;
28
29
  }
29
30
 
30
- return MockImage;
31
+ return _createClass(MockImage);
31
32
  }(global.Image);
32
33
 
33
34
  export function enableMockGlobalImage() {
@@ -158,7 +158,7 @@ export var getMockClipboardEvent = function getMockClipboardEvent() {
158
158
  return _this;
159
159
  }
160
160
 
161
- return MockClipboardEvent;
161
+ return _createClass(MockClipboardEvent);
162
162
  }( /*#__PURE__*/_wrapNativeSuper(Event));
163
163
  };
164
164
  export var MockDragEvent = function MockDragEvent() {
@@ -1,8 +1,8 @@
1
1
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
2
 
3
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
3
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
4
4
 
5
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
5
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
6
6
 
7
7
  import { defaultMediaFeatureFlags } from '@atlaskit/media-common';
8
8
  export var exampleMediaFeatureFlags = _objectSpread({}, defaultMediaFeatureFlags);
@@ -10,12 +10,12 @@ import Textfield from '@atlaskit/textfield';
10
10
  import { getMediaFeatureFlags, clearAllLocalFeatureFlags, setLocalFeatureFlag } from './helpers';
11
11
  import SelectClearIcon from '@atlaskit/icon/glyph/select-clear';
12
12
  import HipchatChevronDownIcon from '@atlaskit/icon/glyph/hipchat/chevron-down';
13
- import Button from '@atlaskit/button';
13
+ import Button from '@atlaskit/button/standard-button';
14
14
  import Tooltip from '@atlaskit/tooltip';
15
- import styled from 'styled-components';
15
+ import styled from '@emotion/styled';
16
16
  import Popup from '@atlaskit/popup';
17
17
  import { Checkbox } from '@atlaskit/checkbox';
18
- import debounce from 'lodash/debounce';
18
+ import { debounce } from '@atlaskit/media-common';
19
19
 
20
20
  var camelCaseToSentenceCase = function camelCaseToSentenceCase(text) {
21
21
  var result = text.replace(/([A-Z])/g, ' $1');
@@ -1,8 +1,8 @@
1
1
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
2
 
3
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
3
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
4
4
 
5
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
5
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
6
6
 
7
7
  import { defaultMediaFeatureFlags, getMediaFeatureFlag } from '@atlaskit/media-common';
8
8
  var mediaFeatureFlagsKeys = Object.keys(defaultMediaFeatureFlags);
@@ -2,6 +2,7 @@ import _assertThisInitialized from "@babel/runtime/helpers/assertThisInitialized
2
2
  import _inherits from "@babel/runtime/helpers/inherits";
3
3
  import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstructorReturn";
4
4
  import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
5
+ import _createClass from "@babel/runtime/helpers/createClass";
5
6
  import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
6
7
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
7
8
 
@@ -9,7 +10,7 @@ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflec
9
10
 
10
11
  function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
11
12
 
12
- var MockFileReader = function MockFileReader() {
13
+ var MockFileReader = /*#__PURE__*/_createClass(function MockFileReader() {
13
14
  var _this = this;
14
15
 
15
16
  var result = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'mockResult';
@@ -37,7 +38,7 @@ var MockFileReader = function MockFileReader() {
37
38
  }));
38
39
 
39
40
  this.result = result;
40
- };
41
+ });
41
42
 
42
43
  var mockFileReaderError = {
43
44
  message: 'error'
@@ -66,7 +67,7 @@ var MockFileReaderWithError = /*#__PURE__*/function (_MockFileReader) {
66
67
  return _this2;
67
68
  }
68
69
 
69
- return MockFileReaderWithError;
70
+ return _createClass(MockFileReaderWithError);
70
71
  }(MockFileReader);
71
72
 
72
73
  var GlobalFileReader = global.FileReader;
@@ -0,0 +1,80 @@
1
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
+
3
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
4
+
5
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
6
+
7
+ import { tallImage } from '../';
8
+ var localPreview = {
9
+ value: tallImage
10
+ };
11
+ var brokenLocalPreview = {
12
+ value: 'broken-data-uri'
13
+ };
14
+ var remotePreview = {
15
+ image: {}
16
+ };
17
+ export var createFileState = function createFileState(id, status) {
18
+ var _ref = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {},
19
+ withRemotePreview = _ref.withRemotePreview,
20
+ withLocalPreview = _ref.withLocalPreview,
21
+ withBrokenLocalPreview = _ref.withBrokenLocalPreview,
22
+ uploadProgress = _ref.uploadProgress,
23
+ fileDetails = _ref.fileDetails;
24
+
25
+ var extendState = {};
26
+
27
+ if (uploadProgress) {
28
+ extendState.progress = uploadProgress;
29
+ } // REMOTE PREVIEW
30
+
31
+
32
+ if (withRemotePreview) {
33
+ extendState.representations = remotePreview;
34
+ } else if (withRemotePreview === false) {
35
+ extendState.representations = {};
36
+ } // LOCAL PREVIEW
37
+
38
+
39
+ if (withLocalPreview) {
40
+ extendState.preview = localPreview;
41
+ } else if (withBrokenLocalPreview) {
42
+ extendState.preview = brokenLocalPreview;
43
+ }
44
+
45
+ var base = _objectSpread(_objectSpread(_objectSpread({}, fileDetails), extendState), {}, {
46
+ id: id
47
+ });
48
+
49
+ switch (status) {
50
+ case 'uploading':
51
+ return _objectSpread({
52
+ status: 'uploading',
53
+ progress: 0
54
+ }, base);
55
+
56
+ case 'processing':
57
+ return _objectSpread({
58
+ status: 'processing'
59
+ }, base);
60
+
61
+ case 'processed':
62
+ return _objectSpread({
63
+ status: 'processed',
64
+ representations: remotePreview,
65
+ artifacts: {}
66
+ }, base);
67
+
68
+ case 'failed-processing':
69
+ return _objectSpread({
70
+ status: 'failed-processing'
71
+ }, base);
72
+
73
+ case 'error':
74
+ default:
75
+ return {
76
+ id: id,
77
+ status: 'error'
78
+ };
79
+ }
80
+ };
@@ -0,0 +1,161 @@
1
+ import _regeneratorRuntime from "@babel/runtime/regenerator";
2
+ import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
3
+ import _createClass from "@babel/runtime/helpers/createClass";
4
+ import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
5
+ import _assertThisInitialized from "@babel/runtime/helpers/assertThisInitialized";
6
+ import _inherits from "@babel/runtime/helpers/inherits";
7
+ import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstructorReturn";
8
+ import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
9
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
10
+
11
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
12
+
13
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
14
+
15
+ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
16
+
17
+ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
18
+
19
+ import { tallImage, dataURItoBlob } from '..';
20
+ import { MediaClient, createFileStateSubject } from '@atlaskit/media-client';
21
+ import { createFileState } from './createFileState';
22
+ import { createFileDetails } from './helpers';
23
+ import { sleep } from '../nextTick';
24
+ export var MediaClientMock = /*#__PURE__*/function (_MediaClient) {
25
+ _inherits(MediaClientMock, _MediaClient);
26
+
27
+ var _super = _createSuper(MediaClientMock);
28
+
29
+ function MediaClientMock(observable, mediaClientConfig, featureFlags) {
30
+ var _this;
31
+
32
+ var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
33
+
34
+ _classCallCheck(this, MediaClientMock);
35
+
36
+ _this = _super.call(this, mediaClientConfig, featureFlags);
37
+
38
+ _defineProperty(_assertThisInitialized(_this), "updateObserbable", function (newObservable) {
39
+ _this.observable = newObservable;
40
+ });
41
+
42
+ _defineProperty(_assertThisInitialized(_this), "getImage", /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
43
+ var _this$options$getImag, getImageDelay;
44
+
45
+ return _regeneratorRuntime.wrap(function _callee$(_context) {
46
+ while (1) {
47
+ switch (_context.prev = _context.next) {
48
+ case 0:
49
+ _this$options$getImag = _this.options.getImageDelay, getImageDelay = _this$options$getImag === void 0 ? 0 : _this$options$getImag;
50
+ _context.next = 3;
51
+ return sleep(getImageDelay);
52
+
53
+ case 3:
54
+ return _context.abrupt("return", dataURItoBlob(tallImage));
55
+
56
+ case 4:
57
+ case "end":
58
+ return _context.stop();
59
+ }
60
+ }
61
+ }, _callee);
62
+ })));
63
+
64
+ _defineProperty(_assertThisInitialized(_this), "mockFileFetcher", function () {
65
+ _this.file.getFileState = function () {
66
+ return _this.observable;
67
+ };
68
+ });
69
+
70
+ _this.observable = observable;
71
+ _this.options = options;
72
+
73
+ _this.mockFileFetcher();
74
+
75
+ return _this;
76
+ }
77
+
78
+ return _createClass(MediaClientMock);
79
+ }(MediaClient);
80
+ var mockConfig = {
81
+ authProvider: function () {
82
+ var _authProvider = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2() {
83
+ return _regeneratorRuntime.wrap(function _callee2$(_context2) {
84
+ while (1) {
85
+ switch (_context2.prev = _context2.next) {
86
+ case 0:
87
+ return _context2.abrupt("return", {
88
+ clientId: 'some-client',
89
+ token: 'some-token',
90
+ baseUrl: 'some-url'
91
+ });
92
+
93
+ case 1:
94
+ case "end":
95
+ return _context2.stop();
96
+ }
97
+ }
98
+ }, _callee2);
99
+ }));
100
+
101
+ function authProvider() {
102
+ return _authProvider.apply(this, arguments);
103
+ }
104
+
105
+ return authProvider;
106
+ }()
107
+ };
108
+
109
+ /**
110
+ * A fake Media Client that provides a backdoor to inject
111
+ * simulated file states. With this class, we can test several scenarios
112
+ * without having to recreate them all in the backend.
113
+ */
114
+ export var FileStateFactory = /*#__PURE__*/_createClass(function FileStateFactory(identifier) {
115
+ var _this2 = this;
116
+
117
+ var _ref2 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
118
+ _fileDetails = _ref2.fileDetails,
119
+ _ref2$mediaClientConf = _ref2.mediaClientConfig,
120
+ mediaClientConfig = _ref2$mediaClientConf === void 0 ? mockConfig : _ref2$mediaClientConf,
121
+ featureFlags = _ref2.featureFlags,
122
+ mediaClientMockOptions = _ref2.mediaClientMockOptions;
123
+
124
+ _classCallCheck(this, FileStateFactory);
125
+
126
+ _defineProperty(this, "updateIdentifier", function (identifier, fileDetails) {
127
+ _this2.identifier = identifier;
128
+ _this2.fileDetails = fileDetails || createFileDetails(_this2.identifier.id);
129
+ _this2.observable = createFileStateSubject();
130
+
131
+ _this2.mediaClient.updateObserbable(_this2.observable);
132
+ });
133
+
134
+ _defineProperty(this, "subscription", {
135
+ next: function next(fileState) {
136
+ _this2.observable.next(fileState);
137
+ },
138
+ error: function error(_error) {
139
+ _this2.observable.error(_error);
140
+ }
141
+ });
142
+
143
+ _defineProperty(this, "createFileState", function (status, options) {
144
+ return createFileState(_this2.identifier.id, status, _objectSpread(_objectSpread({}, options), {}, {
145
+ fileDetails: (options === null || options === void 0 ? void 0 : options.fileDetails) || _this2.fileDetails
146
+ }));
147
+ });
148
+
149
+ _defineProperty(this, "next", function (status, options) {
150
+ _this2.subscription.next(_this2.createFileState(status, options));
151
+ });
152
+
153
+ _defineProperty(this, "error", function (error) {
154
+ _this2.subscription.error(error);
155
+ });
156
+
157
+ this.identifier = identifier;
158
+ this.fileDetails = _fileDetails || createFileDetails(this.identifier.id);
159
+ this.observable = createFileStateSubject();
160
+ this.mediaClient = new MediaClientMock(this.observable, mediaClientConfig, featureFlags, mediaClientMockOptions);
161
+ });