@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.
- package/CHANGELOG.md +34 -0
- package/dist/cjs/MockGlobalImage.js +3 -1
- package/dist/cjs/clipboardEventMocks.js +1 -1
- package/dist/cjs/example-mediaFeatureFlags.js +2 -2
- package/dist/cjs/featureFlagsWrapper/dropdown.js +7 -7
- package/dist/cjs/featureFlagsWrapper/helpers.js +2 -2
- package/dist/cjs/fileReader.js +5 -4
- package/dist/cjs/fileStateFactory/createFileState.js +93 -0
- package/dist/cjs/fileStateFactory/factory.js +174 -0
- package/dist/cjs/fileStateFactory/helpers.js +110 -0
- package/dist/cjs/fileStateFactory/index.js +41 -0
- package/dist/cjs/index.js +39 -1
- package/dist/cjs/keyboardEventWithKeyCode.js +5 -3
- package/dist/cjs/mediaClientErrors.js +10 -4
- package/dist/cjs/mediaPickerMocks.js +2 -2
- package/dist/cjs/mockData/index.js +4 -3
- package/dist/cjs/mockData/matchers.js +4 -6
- package/dist/cjs/mockLoadImage.js +2 -2
- package/dist/cjs/mocks/fileAndDirectoriesUtils.js +2 -2
- package/dist/cjs/mocks/media-mock.js +1 -1
- package/dist/cjs/mocks/routers/api-router.js +2 -2
- package/dist/cjs/mocks/websockets/remote-upload-server.js +4 -2
- package/dist/cjs/mountWithIntlContext.js +7 -4
- package/dist/cjs/renderWithIntl.js +22 -0
- package/dist/cjs/smart-card-state.js +108 -0
- package/dist/cjs/story-styles.js +2 -2
- package/dist/cjs/styled.js +2 -2
- package/dist/cjs/version.json +1 -1
- package/dist/es2019/featureFlagsWrapper/dropdown.js +3 -3
- package/dist/es2019/fileStateFactory/createFileState.js +78 -0
- package/dist/es2019/fileStateFactory/factory.js +87 -0
- package/dist/es2019/fileStateFactory/helpers.js +86 -0
- package/dist/es2019/fileStateFactory/index.js +3 -0
- package/dist/es2019/index.js +3 -2
- package/dist/es2019/mediaClientErrors.js +3 -2
- package/dist/es2019/mockData/matchers.js +1 -1
- package/dist/es2019/mocks/media-mock.js +1 -1
- package/dist/es2019/renderWithIntl.js +8 -0
- package/dist/es2019/smart-card-state.js +100 -0
- package/dist/es2019/story-styles.js +1 -1
- package/dist/es2019/styled.js +1 -1
- package/dist/es2019/version.json +1 -1
- package/dist/esm/MockGlobalImage.js +2 -1
- package/dist/esm/clipboardEventMocks.js +1 -1
- package/dist/esm/example-mediaFeatureFlags.js +2 -2
- package/dist/esm/featureFlagsWrapper/dropdown.js +3 -3
- package/dist/esm/featureFlagsWrapper/helpers.js +2 -2
- package/dist/esm/fileReader.js +4 -3
- package/dist/esm/fileStateFactory/createFileState.js +80 -0
- package/dist/esm/fileStateFactory/factory.js +161 -0
- package/dist/esm/fileStateFactory/helpers.js +96 -0
- package/dist/esm/fileStateFactory/index.js +3 -0
- package/dist/esm/index.js +3 -2
- package/dist/esm/keyboardEventWithKeyCode.js +4 -3
- package/dist/esm/mediaClientErrors.js +6 -3
- package/dist/esm/mediaPickerMocks.js +2 -2
- package/dist/esm/mockData/index.js +3 -2
- package/dist/esm/mockData/matchers.js +1 -1
- package/dist/esm/mockLoadImage.js +2 -2
- package/dist/esm/mocks/fileAndDirectoriesUtils.js +2 -2
- package/dist/esm/mocks/media-mock.js +1 -1
- package/dist/esm/mocks/routers/api-router.js +2 -2
- package/dist/esm/mocks/websockets/remote-upload-server.js +4 -2
- package/dist/esm/mountWithIntlContext.js +6 -4
- package/dist/esm/renderWithIntl.js +8 -0
- package/dist/esm/smart-card-state.js +100 -0
- package/dist/esm/story-styles.js +1 -1
- package/dist/esm/styled.js +1 -1
- package/dist/esm/version.json +1 -1
- package/dist/types/featureFlagsWrapper/helpers.d.ts +1 -1
- package/dist/types/fileStateFactory/createFileState.d.ts +10 -0
- package/dist/types/fileStateFactory/factory.d.ts +42 -0
- package/dist/types/fileStateFactory/helpers.d.ts +7 -0
- package/dist/types/fileStateFactory/index.d.ts +4 -0
- package/dist/types/index.d.ts +3 -1
- package/dist/types/mediaClientErrors.d.ts +2 -1
- package/dist/types/renderWithIntl.d.ts +3 -0
- package/dist/types/smart-card-state.d.ts +2 -0
- package/dist/types/story-styles.d.ts +2 -2
- package/dist/types/styled.d.ts +1 -1
- package/package.json +13 -12
- package/renderWithIntl/package.json +7 -0
- package/smart-card-state/package.json +7 -0
- 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
|
+
};
|
package/dist/es2019/index.js
CHANGED
|
@@ -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');
|
|
@@ -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
|
+
};
|
package/dist/es2019/styled.js
CHANGED
package/dist/es2019/version.json
CHANGED
|
@@ -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);
|
|
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]
|
|
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
|
|
15
|
+
import styled from '@emotion/styled';
|
|
16
16
|
import Popup from '@atlaskit/popup';
|
|
17
17
|
import { Checkbox } from '@atlaskit/checkbox';
|
|
18
|
-
import debounce from '
|
|
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);
|
|
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]
|
|
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);
|
package/dist/esm/fileReader.js
CHANGED
|
@@ -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
|
+
});
|