@contentful/field-editor-reference 5.21.2 → 5.21.4
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/dist/cjs/__fixtures__/FakeSdk.js +3 -3
- package/dist/cjs/__fixtures__/asset/index.js +10 -10
- package/dist/cjs/__fixtures__/content-type/index.js +1 -1
- package/dist/cjs/__fixtures__/entry/index.js +7 -7
- package/dist/cjs/__fixtures__/fixtures.js +6 -8
- package/dist/cjs/__fixtures__/locale/index.js +2 -2
- package/dist/cjs/__fixtures__/space/index.js +1 -1
- package/dist/cjs/assets/MultipleMediaEditor.js +5 -7
- package/dist/cjs/assets/SingleMediaEditor.js +4 -6
- package/dist/cjs/assets/WrappedAssetCard/AssetCardActions.js +19 -21
- package/dist/cjs/assets/WrappedAssetCard/FetchingWrappedAssetCard.js +11 -18
- package/dist/cjs/assets/WrappedAssetCard/WrappedAssetCard.js +11 -20
- package/dist/cjs/assets/WrappedAssetCard/WrappedAssetLink.js +9 -12
- package/dist/cjs/assets/index.js +3 -3
- package/dist/cjs/common/EntityStore.js +32 -51
- package/dist/cjs/common/MultipleReferenceEditor.js +11 -20
- package/dist/cjs/common/ReferenceEditor.js +5 -7
- package/dist/cjs/common/SingleReferenceEditor.js +7 -11
- package/dist/cjs/common/SortableLinkList.js +14 -14
- package/dist/cjs/common/customCardTypes.js +2 -4
- package/dist/cjs/common/queryClient.js +9 -14
- package/dist/cjs/common/useContentTypePermissions.js +1 -3
- package/dist/cjs/common/useEditorPermissions.js +3 -15
- package/dist/cjs/common/useEditorPermissions.spec.js +11 -12
- package/dist/cjs/components/AssetThumbnail/AssetThumbnail.js +3 -5
- package/dist/cjs/components/CreateEntryLinkButton/CreateEntryLinkButton.js +9 -13
- package/dist/cjs/components/CreateEntryLinkButton/CreateEntryLinkButton.spec.js +15 -17
- package/dist/cjs/components/CreateEntryLinkButton/CreateEntryMenuTrigger.js +19 -29
- package/dist/cjs/components/CreateEntryLinkButton/CreateEntryMenuTrigger.spec.js +12 -14
- package/dist/cjs/components/LinkActions/CombinedLinkActions.js +21 -28
- package/dist/cjs/components/LinkActions/LinkActions.js +15 -17
- package/dist/cjs/components/LinkActions/LinkEntityActions.js +17 -26
- package/dist/cjs/components/LinkActions/NoLinkPermissionsInfo.js +3 -5
- package/dist/cjs/components/LinkActions/helpers.js +5 -14
- package/dist/cjs/components/LinkActions/redesignStyles.js +4 -4
- package/dist/cjs/components/LinkActions/styles.js +1 -1
- package/dist/cjs/components/MissingEntityCard/MissingEntityCard.js +9 -11
- package/dist/cjs/components/ResourceEntityErrorCard/ResourceEntityErrorCard.js +4 -6
- package/dist/cjs/components/ResourceEntityErrorCard/UnsupportedEntityCard.js +4 -6
- package/dist/cjs/components/ScheduledIconWithTooltip/ScheduleTooltip.js +8 -10
- package/dist/cjs/components/ScheduledIconWithTooltip/ScheduledIconWithTooltip.js +4 -9
- package/dist/cjs/components/ScheduledIconWithTooltip/formatDateAndTime.js +4 -5
- package/dist/cjs/components/SpaceName/SpaceName.js +7 -9
- package/dist/cjs/components/index.js +12 -12
- package/dist/cjs/entries/MultipleEntryReferenceEditor.js +7 -9
- package/dist/cjs/entries/SingleEntryReferenceEditor.js +5 -7
- package/dist/cjs/entries/WrappedEntryCard/FetchingWrappedEntryCard.js +11 -20
- package/dist/cjs/entries/WrappedEntryCard/WrappedEntryCard.js +17 -23
- package/dist/cjs/entries/index.js +3 -3
- package/dist/cjs/index.js +37 -37
- package/dist/cjs/resources/Cards/ContentfulEntryCard.js +4 -13
- package/dist/cjs/resources/Cards/ResourceCard.js +12 -16
- package/dist/cjs/resources/Cards/ResourceCard.spec.js +17 -20
- package/dist/cjs/resources/MultipleResourceReferenceEditor.js +17 -20
- package/dist/cjs/resources/MultipleResourceReferenceEditor.spec.js +13 -34
- package/dist/cjs/resources/SingleResourceReferenceEditor.js +9 -11
- package/dist/cjs/resources/SingleResourceReferenceEditor.spec.js +6 -13
- package/dist/cjs/resources/testHelpers/resourceEditorHelpers.js +5 -12
- package/dist/cjs/resources/useResourceLinkActions.js +2 -11
- package/dist/cjs/types.js +3 -3
- package/dist/cjs/utils/fromFieldValidations.js +1 -2
- package/dist/cjs/utils/useSortIDs.js +4 -6
- package/dist/esm/__fixtures__/FakeSdk.js +3 -3
- package/dist/esm/assets/MultipleMediaEditor.js +3 -3
- package/dist/esm/assets/SingleMediaEditor.js +2 -2
- package/dist/esm/assets/WrappedAssetCard/AssetCardActions.js +12 -12
- package/dist/esm/assets/WrappedAssetCard/FetchingWrappedAssetCard.js +9 -14
- package/dist/esm/assets/WrappedAssetCard/WrappedAssetCard.js +7 -15
- package/dist/esm/assets/WrappedAssetCard/WrappedAssetLink.js +6 -7
- package/dist/esm/common/EntityStore.js +22 -39
- package/dist/esm/common/MultipleReferenceEditor.js +9 -16
- package/dist/esm/common/ReferenceEditor.js +2 -2
- package/dist/esm/common/SingleReferenceEditor.js +5 -7
- package/dist/esm/common/SortableLinkList.js +12 -12
- package/dist/esm/common/queryClient.js +3 -10
- package/dist/esm/common/useContentTypePermissions.js +1 -3
- package/dist/esm/common/useEditorPermissions.js +3 -15
- package/dist/esm/common/useEditorPermissions.spec.js +11 -12
- package/dist/esm/components/AssetThumbnail/AssetThumbnail.js +1 -1
- package/dist/esm/components/CreateEntryLinkButton/CreateEntryLinkButton.js +5 -7
- package/dist/esm/components/CreateEntryLinkButton/CreateEntryLinkButton.spec.js +12 -12
- package/dist/esm/components/CreateEntryLinkButton/CreateEntryMenuTrigger.js +15 -23
- package/dist/esm/components/CreateEntryLinkButton/CreateEntryMenuTrigger.spec.js +8 -9
- package/dist/esm/components/LinkActions/CombinedLinkActions.js +19 -30
- package/dist/esm/components/LinkActions/LinkActions.js +9 -9
- package/dist/esm/components/LinkActions/LinkEntityActions.js +11 -18
- package/dist/esm/components/LinkActions/NoLinkPermissionsInfo.js +1 -1
- package/dist/esm/components/LinkActions/helpers.js +2 -11
- package/dist/esm/components/MissingEntityCard/MissingEntityCard.js +6 -6
- package/dist/esm/components/ResourceEntityErrorCard/ResourceEntityErrorCard.js +2 -2
- package/dist/esm/components/ResourceEntityErrorCard/UnsupportedEntityCard.js +2 -2
- package/dist/esm/components/ScheduledIconWithTooltip/ScheduleTooltip.js +3 -3
- package/dist/esm/components/ScheduledIconWithTooltip/ScheduledIconWithTooltip.js +2 -5
- package/dist/esm/components/ScheduledIconWithTooltip/formatDateAndTime.js +2 -11
- package/dist/esm/components/SpaceName/SpaceName.js +4 -4
- package/dist/esm/entries/MultipleEntryReferenceEditor.js +5 -5
- package/dist/esm/entries/SingleEntryReferenceEditor.js +3 -3
- package/dist/esm/entries/WrappedEntryCard/FetchingWrappedEntryCard.js +8 -15
- package/dist/esm/entries/WrappedEntryCard/WrappedEntryCard.js +14 -18
- package/dist/esm/resources/Cards/ContentfulEntryCard.js +2 -9
- package/dist/esm/resources/Cards/ResourceCard.js +10 -12
- package/dist/esm/resources/Cards/ResourceCard.spec.js +11 -12
- package/dist/esm/resources/MultipleResourceReferenceEditor.js +13 -14
- package/dist/esm/resources/MultipleResourceReferenceEditor.spec.js +11 -30
- package/dist/esm/resources/SingleResourceReferenceEditor.js +6 -6
- package/dist/esm/resources/SingleResourceReferenceEditor.spec.js +4 -9
- package/dist/esm/resources/testHelpers/resourceEditorHelpers.js +2 -9
- package/dist/esm/resources/useResourceLinkActions.js +2 -11
- package/dist/esm/utils/fromFieldValidations.js +0 -1
- package/dist/esm/utils/useSortIDs.js +2 -2
- package/dist/types/assets/MultipleMediaEditor.d.ts +2 -2
- package/dist/types/assets/SingleMediaEditor.d.ts +2 -2
- package/dist/types/assets/WrappedAssetCard/AssetCardActions.d.ts +3 -3
- package/dist/types/assets/WrappedAssetCard/FetchingWrappedAssetCard.d.ts +2 -2
- package/dist/types/assets/WrappedAssetCard/WrappedAssetCard.d.ts +2 -2
- package/dist/types/assets/WrappedAssetCard/WrappedAssetLink.d.ts +2 -2
- package/dist/types/common/EntityStore.d.ts +1 -1
- package/dist/types/common/MultipleReferenceEditor.d.ts +1 -1
- package/dist/types/common/ReferenceEditor.d.ts +1 -1
- package/dist/types/common/SingleReferenceEditor.d.ts +1 -1
- package/dist/types/common/SortableLinkList.d.ts +1 -1
- package/dist/types/common/queryClient.d.ts +1 -1
- package/dist/types/components/AssetThumbnail/AssetThumbnail.d.ts +2 -2
- package/dist/types/components/CreateEntryLinkButton/CreateEntryLinkButton.d.ts +1 -1
- package/dist/types/components/CreateEntryLinkButton/CreateEntryMenuTrigger.d.ts +1 -1
- package/dist/types/components/LinkActions/CombinedLinkActions.d.ts +2 -2
- package/dist/types/components/LinkActions/LinkActions.d.ts +1 -1
- package/dist/types/components/LinkActions/LinkEntityActions.d.ts +2 -2
- package/dist/types/components/LinkActions/NoLinkPermissionsInfo.d.ts +2 -2
- package/dist/types/components/MissingEntityCard/MissingEntityCard.d.ts +2 -2
- package/dist/types/components/ResourceEntityErrorCard/ResourceEntityErrorCard.d.ts +2 -2
- package/dist/types/components/ResourceEntityErrorCard/UnsupportedEntityCard.d.ts +2 -2
- package/dist/types/components/ScheduledIconWithTooltip/ScheduleTooltip.d.ts +1 -1
- package/dist/types/components/ScheduledIconWithTooltip/ScheduledIconWithTooltip.d.ts +1 -1
- package/dist/types/components/SpaceName/SpaceName.d.ts +2 -2
- package/dist/types/entries/MultipleEntryReferenceEditor.d.ts +2 -2
- package/dist/types/entries/SingleEntryReferenceEditor.d.ts +2 -2
- package/dist/types/entries/WrappedEntryCard/FetchingWrappedEntryCard.d.ts +2 -2
- package/dist/types/entries/WrappedEntryCard/WrappedEntryCard.d.ts +1 -1
- package/dist/types/resources/Cards/ContentfulEntryCard.d.ts +2 -2
- package/dist/types/resources/Cards/ResourceCard.d.ts +2 -2
- package/dist/types/resources/MultipleResourceReferenceEditor.d.ts +2 -2
- package/dist/types/resources/SingleResourceReferenceEditor.d.ts +2 -2
- package/package.json +7 -4
|
@@ -8,7 +8,7 @@ Object.defineProperty(exports, "ResourceCard", {
|
|
|
8
8
|
return ResourceCard;
|
|
9
9
|
}
|
|
10
10
|
});
|
|
11
|
-
const _react =
|
|
11
|
+
const _react = _interop_require_wildcard(require("react"));
|
|
12
12
|
const _reactintersectionobserver = require("react-intersection-observer");
|
|
13
13
|
const _f36components = require("@contentful/f36-components");
|
|
14
14
|
const _EntityStore = require("../../common/EntityStore");
|
|
@@ -35,9 +35,7 @@ function _interop_require_wildcard(obj, nodeInterop) {
|
|
|
35
35
|
if (cache && cache.has(obj)) {
|
|
36
36
|
return cache.get(obj);
|
|
37
37
|
}
|
|
38
|
-
var newObj = {
|
|
39
|
-
__proto__: null
|
|
40
|
-
};
|
|
38
|
+
var newObj = {};
|
|
41
39
|
var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
|
|
42
40
|
for(var key in obj){
|
|
43
41
|
if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
|
|
@@ -56,29 +54,28 @@ function _interop_require_wildcard(obj, nodeInterop) {
|
|
|
56
54
|
return newObj;
|
|
57
55
|
}
|
|
58
56
|
function ResourceCardSkeleton() {
|
|
59
|
-
return
|
|
57
|
+
return _react.createElement(_f36components.EntryCard, {
|
|
60
58
|
size: "small",
|
|
61
59
|
isLoading: true
|
|
62
60
|
});
|
|
63
61
|
}
|
|
64
62
|
function ExistingResourceCard(props) {
|
|
65
|
-
const { resourceLink, inView, index =
|
|
63
|
+
const { resourceLink , inView , index =0 } = props;
|
|
66
64
|
const resourceOptions = {
|
|
67
65
|
priority: index * -1,
|
|
68
66
|
enabled: inView
|
|
69
67
|
};
|
|
70
|
-
const { data, error
|
|
68
|
+
const { data , error } = (0, _EntityStore.useResource)(resourceLink.sys.linkType, resourceLink.sys.urn, resourceOptions);
|
|
71
69
|
if (!data && !error) {
|
|
72
|
-
return
|
|
70
|
+
return _react.createElement(ResourceCardSkeleton, null);
|
|
73
71
|
}
|
|
74
72
|
if (data) {
|
|
75
|
-
|
|
76
|
-
return /*#__PURE__*/ _react.createElement(_ContentfulEntryCard.ContentfulEntryCard, {
|
|
73
|
+
return _react.createElement(_ContentfulEntryCard.ContentfulEntryCard, {
|
|
77
74
|
info: data,
|
|
78
75
|
...props
|
|
79
76
|
});
|
|
80
77
|
}
|
|
81
|
-
return
|
|
78
|
+
return _react.createElement(_components.ResourceEntityErrorCard, {
|
|
82
79
|
linkType: resourceLink.sys.linkType,
|
|
83
80
|
error: error,
|
|
84
81
|
isDisabled: props.isDisabled,
|
|
@@ -89,21 +86,20 @@ function ResourceCardWrapper(props) {
|
|
|
89
86
|
if (!props.resourceLink) {
|
|
90
87
|
return null;
|
|
91
88
|
}
|
|
92
|
-
return
|
|
89
|
+
return _react.createElement(ExistingResourceCard, {
|
|
93
90
|
...props,
|
|
94
91
|
resourceLink: props.resourceLink,
|
|
95
92
|
getEntryRouteHref: props.getEntryRouteHref
|
|
96
93
|
});
|
|
97
94
|
}
|
|
98
95
|
function ResourceCard(props) {
|
|
99
|
-
const { ref, inView
|
|
96
|
+
const { ref , inView } = (0, _reactintersectionobserver.useInView)({
|
|
100
97
|
triggerOnce: true,
|
|
101
98
|
rootMargin: '300px 0px 0px 300px'
|
|
102
99
|
});
|
|
103
|
-
|
|
104
|
-
return /*#__PURE__*/ _react.createElement("div", {
|
|
100
|
+
return _react.createElement("div", {
|
|
105
101
|
ref: ref
|
|
106
|
-
},
|
|
102
|
+
}, _react.createElement(ResourceCardWrapper, {
|
|
107
103
|
...props,
|
|
108
104
|
inView: inView
|
|
109
105
|
}));
|
|
@@ -2,14 +2,14 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", {
|
|
3
3
|
value: true
|
|
4
4
|
});
|
|
5
|
-
const _react =
|
|
5
|
+
const _react = _interop_require_wildcard(require("react"));
|
|
6
6
|
require("@testing-library/jest-dom");
|
|
7
7
|
const _fieldeditortestutils = require("@contentful/field-editor-test-utils");
|
|
8
8
|
const _react1 = require("@testing-library/react");
|
|
9
|
-
const _published_content_typejson =
|
|
10
|
-
const _published_entry_non_masterjson =
|
|
11
|
-
const _published_entryjson =
|
|
12
|
-
const _indifferent_spacejson =
|
|
9
|
+
const _published_content_typejson = _interop_require_default(require("../../__fixtures__/content-type/published_content_type.json"));
|
|
10
|
+
const _published_entry_non_masterjson = _interop_require_default(require("../../__fixtures__/entry/published_entry_non_master.json"));
|
|
11
|
+
const _published_entryjson = _interop_require_default(require("../../__fixtures__/entry/published_entry.json"));
|
|
12
|
+
const _indifferent_spacejson = _interop_require_default(require("../../__fixtures__/space/indifferent_space.json"));
|
|
13
13
|
const _EntityStore = require("../../common/EntityStore");
|
|
14
14
|
const _ResourceCard = require("./ResourceCard");
|
|
15
15
|
function _interop_require_default(obj) {
|
|
@@ -38,9 +38,7 @@ function _interop_require_wildcard(obj, nodeInterop) {
|
|
|
38
38
|
if (cache && cache.has(obj)) {
|
|
39
39
|
return cache.get(obj);
|
|
40
40
|
}
|
|
41
|
-
var newObj = {
|
|
42
|
-
__proto__: null
|
|
43
|
-
};
|
|
41
|
+
var newObj = {};
|
|
44
42
|
var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
|
|
45
43
|
for(var key in obj){
|
|
46
44
|
if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
|
|
@@ -64,7 +62,6 @@ function _interop_require_wildcard(obj, nodeInterop) {
|
|
|
64
62
|
jest.mock('react-intersection-observer', ()=>({
|
|
65
63
|
useInView: jest.fn().mockReturnValue({})
|
|
66
64
|
}));
|
|
67
|
-
// explicit master
|
|
68
65
|
const resolvableEntryUrn = 'crn:contentful:::content:spaces/space-id/entries/linked-entry-urn';
|
|
69
66
|
const resolvableEntryUrnWithExplicitMaster = 'crn:contentful:::content:spaces/space-id/environments/master/entries/linked-entry-urn';
|
|
70
67
|
const resolvableEntryUrnWithAnotherEnvironment = 'crn:contentful:::content:spaces/space-id/environments/my-test-environment/entries/linked-entry-urn';
|
|
@@ -78,7 +75,7 @@ const sdk = {
|
|
|
78
75
|
get: jest.fn().mockReturnValue(_published_content_typejson.default)
|
|
79
76
|
},
|
|
80
77
|
Entry: {
|
|
81
|
-
get: jest.fn().mockImplementation(({ spaceId, environmentId, entryId
|
|
78
|
+
get: jest.fn().mockImplementation(({ spaceId , environmentId , entryId })=>{
|
|
82
79
|
if (spaceId === 'space-id' && environmentId === 'master' && entryId === 'linked-entry-urn') {
|
|
83
80
|
return Promise.resolve(_published_entryjson.default);
|
|
84
81
|
}
|
|
@@ -117,10 +114,10 @@ const sdk = {
|
|
|
117
114
|
environment: 'environment-id'
|
|
118
115
|
}
|
|
119
116
|
};
|
|
120
|
-
function renderResourceCard({ linkType =
|
|
121
|
-
return (0, _react1.render)(
|
|
117
|
+
function renderResourceCard({ linkType ='Contentful:Entry' , entryUrn =resolvableEntryUrn } = {}) {
|
|
118
|
+
return (0, _react1.render)(_react.createElement(_EntityStore.EntityProvider, {
|
|
122
119
|
sdk: sdk
|
|
123
|
-
},
|
|
120
|
+
}, _react.createElement(_ResourceCard.ResourceCard, {
|
|
124
121
|
isDisabled: false,
|
|
125
122
|
getEntryRouteHref: ()=>'',
|
|
126
123
|
resourceLink: {
|
|
@@ -134,7 +131,7 @@ function renderResourceCard({ linkType = 'Contentful:Entry', entryUrn = resolvab
|
|
|
134
131
|
}
|
|
135
132
|
describe('ResourceCard', ()=>{
|
|
136
133
|
it('renders entry card with implicit master crn', async ()=>{
|
|
137
|
-
const { getByTestId, getByText
|
|
134
|
+
const { getByTestId , getByText } = renderResourceCard();
|
|
138
135
|
const tooltipContent = `Space: ${_indifferent_spacejson.default.name} (Env.: ${_published_entryjson.default.sys.environment.sys.id})`;
|
|
139
136
|
await (0, _react1.waitFor)(()=>expect(getByTestId('cf-ui-entry-card')).toBeDefined());
|
|
140
137
|
expect(getByText(_published_entryjson.default.fields.exField['en-US'])).toBeDefined();
|
|
@@ -143,7 +140,7 @@ describe('ResourceCard', ()=>{
|
|
|
143
140
|
await (0, _react1.waitFor)(()=>expect(getByText(tooltipContent)).toBeDefined());
|
|
144
141
|
});
|
|
145
142
|
it('renders entry card with explicit master crn', async ()=>{
|
|
146
|
-
const { getByTestId, getByText
|
|
143
|
+
const { getByTestId , getByText } = renderResourceCard({
|
|
147
144
|
entryUrn: resolvableEntryUrnWithExplicitMaster
|
|
148
145
|
});
|
|
149
146
|
const tooltipContent = `Space: ${_indifferent_spacejson.default.name} (Env.: ${_published_entryjson.default.sys.environment.sys.id})`;
|
|
@@ -154,7 +151,7 @@ describe('ResourceCard', ()=>{
|
|
|
154
151
|
await (0, _react1.waitFor)(()=>expect(getByText(tooltipContent)).toBeDefined());
|
|
155
152
|
});
|
|
156
153
|
it('renders entry card with a non master environment', async ()=>{
|
|
157
|
-
const { getByTestId, getByText
|
|
154
|
+
const { getByTestId , getByText } = renderResourceCard({
|
|
158
155
|
entryUrn: resolvableEntryUrnWithAnotherEnvironment
|
|
159
156
|
});
|
|
160
157
|
await (0, _react1.waitFor)(()=>expect(getByTestId('cf-ui-entry-card')).toBeDefined());
|
|
@@ -165,23 +162,23 @@ describe('ResourceCard', ()=>{
|
|
|
165
162
|
await (0, _react1.waitFor)(()=>expect(getByText(tooltipContent)).toBeDefined());
|
|
166
163
|
});
|
|
167
164
|
it('renders skeleton when no data is provided', ()=>{
|
|
168
|
-
const { getByTestId
|
|
165
|
+
const { getByTestId } = renderResourceCard();
|
|
169
166
|
expect(getByTestId('cf-ui-skeleton-form')).toBeDefined();
|
|
170
167
|
});
|
|
171
168
|
it('renders unsupported entity card when unsupported link is passed', async ()=>{
|
|
172
|
-
const { getByText
|
|
169
|
+
const { getByText } = renderResourceCard({
|
|
173
170
|
linkType: 'Contentful:UnsupportedLink'
|
|
174
171
|
});
|
|
175
172
|
await (0, _react1.waitFor)(()=>expect(getByText('Resource type Contentful:UnsupportedLink is currently not supported')).toBeDefined());
|
|
176
173
|
});
|
|
177
174
|
it('renders missing entity card when unknown error is returned', async ()=>{
|
|
178
|
-
const { getByTestId
|
|
175
|
+
const { getByTestId } = renderResourceCard({
|
|
179
176
|
entryUrn: unknownEntryUrn
|
|
180
177
|
});
|
|
181
178
|
await (0, _react1.waitFor)(()=>expect(getByTestId('cf-ui-missing-entry-card')).toBeDefined());
|
|
182
179
|
});
|
|
183
180
|
it('renders missing entity card when crn is invalid', async ()=>{
|
|
184
|
-
const { getByTestId
|
|
181
|
+
const { getByTestId } = renderResourceCard({
|
|
185
182
|
entryUrn: ''
|
|
186
183
|
});
|
|
187
184
|
await (0, _react1.waitFor)(()=>expect(getByTestId('cf-ui-missing-entry-card')).toBeDefined());
|
|
@@ -8,11 +8,11 @@ Object.defineProperty(exports, "MultipleResourceReferenceEditor", {
|
|
|
8
8
|
return MultipleResourceReferenceEditor;
|
|
9
9
|
}
|
|
10
10
|
});
|
|
11
|
-
const _react =
|
|
11
|
+
const _react = _interop_require_wildcard(require("react"));
|
|
12
12
|
const _fieldeditorshared = require("@contentful/field-editor-shared");
|
|
13
13
|
const _sortable = require("@dnd-kit/sortable");
|
|
14
|
-
const _deepequal =
|
|
15
|
-
const _noop =
|
|
14
|
+
const _deepequal = _interop_require_default(require("deep-equal"));
|
|
15
|
+
const _noop = _interop_require_default(require("lodash/noop"));
|
|
16
16
|
const _EntityStore = require("../common/EntityStore");
|
|
17
17
|
const _SortableLinkList = require("../common/SortableLinkList");
|
|
18
18
|
const _LinkEntityActions = require("../components/LinkActions/LinkEntityActions");
|
|
@@ -44,9 +44,7 @@ function _interop_require_wildcard(obj, nodeInterop) {
|
|
|
44
44
|
if (cache && cache.has(obj)) {
|
|
45
45
|
return cache.get(obj);
|
|
46
46
|
}
|
|
47
|
-
var newObj = {
|
|
48
|
-
__proto__: null
|
|
49
|
-
};
|
|
47
|
+
var newObj = {};
|
|
50
48
|
var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
|
|
51
49
|
for(var key in obj){
|
|
52
50
|
if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
|
|
@@ -65,9 +63,9 @@ function _interop_require_wildcard(obj, nodeInterop) {
|
|
|
65
63
|
return newObj;
|
|
66
64
|
}
|
|
67
65
|
function ResourceEditor(props) {
|
|
68
|
-
const { setValue, items, apiUrl
|
|
66
|
+
const { setValue , items , apiUrl } = props;
|
|
69
67
|
const onSortStart = ()=>(0, _noop.default)();
|
|
70
|
-
const onSortEnd = (0, _react.useCallback)(({ oldIndex, newIndex
|
|
68
|
+
const onSortEnd = (0, _react.useCallback)(({ oldIndex , newIndex })=>{
|
|
71
69
|
const newItems = (0, _sortable.arrayMove)(items, oldIndex, newIndex);
|
|
72
70
|
setValue(newItems);
|
|
73
71
|
}, [
|
|
@@ -87,25 +85,24 @@ function ResourceEditor(props) {
|
|
|
87
85
|
items,
|
|
88
86
|
setValue
|
|
89
87
|
]);
|
|
90
|
-
const { dialogs, field
|
|
88
|
+
const { dialogs , field } = props.sdk;
|
|
91
89
|
const linkActionsProps = (0, _useResourceLinkActions.useResourceLinkActions)({
|
|
92
90
|
dialogs,
|
|
93
91
|
field,
|
|
94
92
|
apiUrl
|
|
95
93
|
});
|
|
96
|
-
return
|
|
94
|
+
return _react.createElement(_react.Fragment, null, props.children({
|
|
97
95
|
...props,
|
|
98
96
|
onSortStart,
|
|
99
97
|
onSortEnd,
|
|
100
98
|
onMove,
|
|
101
99
|
onRemoteItemAtIndex
|
|
102
|
-
}),
|
|
100
|
+
}), _react.createElement(_LinkEntityActions.CombinedLinkEntityActions, {
|
|
103
101
|
...linkActionsProps,
|
|
104
102
|
renderCustomActions: props.renderCustomActions
|
|
105
103
|
}));
|
|
106
104
|
}
|
|
107
|
-
|
|
108
|
-
function WithPerItemCallbacks({ listLength, index, onMove, onRemoteItemAtIndex, children }) {
|
|
105
|
+
function WithPerItemCallbacks({ listLength , index , onMove , onRemoteItemAtIndex , children }) {
|
|
109
106
|
const handleMoveTop = _react.useMemo(()=>index > 0 ? ()=>onMove(index, 0) : undefined, [
|
|
110
107
|
index,
|
|
111
108
|
onMove
|
|
@@ -119,7 +116,7 @@ function WithPerItemCallbacks({ listLength, index, onMove, onRemoteItemAtIndex,
|
|
|
119
116
|
index,
|
|
120
117
|
onRemoteItemAtIndex
|
|
121
118
|
]);
|
|
122
|
-
return
|
|
119
|
+
return _react.createElement(_react.Fragment, null, children({
|
|
123
120
|
onMoveBottom: handleMoveBottom,
|
|
124
121
|
onMoveTop: handleMoveTop,
|
|
125
122
|
onRemove: handleRemove
|
|
@@ -127,28 +124,28 @@ function WithPerItemCallbacks({ listLength, index, onMove, onRemoteItemAtIndex,
|
|
|
127
124
|
}
|
|
128
125
|
const EMPTY_ARRAY = [];
|
|
129
126
|
function MultipleResourceReferenceEditor(props) {
|
|
130
|
-
return
|
|
127
|
+
return _react.createElement(_EntityStore.EntityProvider, {
|
|
131
128
|
sdk: props.sdk
|
|
132
|
-
},
|
|
129
|
+
}, _react.createElement(_fieldeditorshared.FieldConnector, {
|
|
133
130
|
debounce: 0,
|
|
134
131
|
field: props.sdk.field,
|
|
135
132
|
isInitiallyDisabled: props.isInitiallyDisabled,
|
|
136
133
|
isEqualValues: _deepequal.default
|
|
137
|
-
}, ({ value, disabled, setValue, externalReset
|
|
138
|
-
return
|
|
134
|
+
}, ({ value , disabled , setValue , externalReset })=>{
|
|
135
|
+
return _react.createElement(ResourceEditor, {
|
|
139
136
|
...props,
|
|
140
137
|
items: value || EMPTY_ARRAY,
|
|
141
138
|
isDisabled: disabled,
|
|
142
139
|
setValue: setValue,
|
|
143
140
|
renderCustomActions: props.renderCustomActions,
|
|
144
141
|
key: `${externalReset}-list`
|
|
145
|
-
}, (editorProps)
|
|
142
|
+
}, (editorProps)=>_react.createElement(_SortableLinkList.SortableLinkList, editorProps, ({ item , isDisabled , DragHandle , index })=>_react.createElement(WithPerItemCallbacks, {
|
|
146
143
|
key: index,
|
|
147
144
|
index: index,
|
|
148
145
|
onMove: editorProps.onMove,
|
|
149
146
|
onRemoteItemAtIndex: editorProps.onRemoteItemAtIndex,
|
|
150
147
|
listLength: value?.length || 0
|
|
151
|
-
}, ({ onMoveBottom, onMoveTop, onRemove
|
|
148
|
+
}, ({ onMoveBottom , onMoveTop , onRemove })=>_react.createElement(_ResourceCard.ResourceCard, {
|
|
152
149
|
key: index,
|
|
153
150
|
index: index,
|
|
154
151
|
resourceLink: item,
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", {
|
|
3
3
|
value: true
|
|
4
4
|
});
|
|
5
|
-
const _react =
|
|
5
|
+
const _react = _interop_require_wildcard(require("react"));
|
|
6
6
|
require("@testing-library/jest-dom/extend-expect");
|
|
7
7
|
const _react1 = require("@testing-library/react");
|
|
8
8
|
const _EntityStore = require("../common/EntityStore");
|
|
@@ -29,9 +29,7 @@ function _interop_require_wildcard(obj, nodeInterop) {
|
|
|
29
29
|
if (cache && cache.has(obj)) {
|
|
30
30
|
return cache.get(obj);
|
|
31
31
|
}
|
|
32
|
-
var newObj = {
|
|
33
|
-
__proto__: null
|
|
34
|
-
};
|
|
32
|
+
var newObj = {};
|
|
35
33
|
var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
|
|
36
34
|
for(var key in obj){
|
|
37
35
|
if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
|
|
@@ -91,18 +89,16 @@ const fieldDefinition = {
|
|
|
91
89
|
describe('Multiple resource editor', ()=>{
|
|
92
90
|
it('renders the action button when no value is set', async ()=>{
|
|
93
91
|
const sdk = (0, _resourceEditorHelpers.mockSdkForField)(fieldDefinition);
|
|
94
|
-
(0, _react1.render)(
|
|
92
|
+
(0, _react1.render)(_react.createElement(_MultipleResourceReferenceEditor.MultipleResourceReferenceEditor, {
|
|
95
93
|
isInitiallyDisabled: false,
|
|
96
94
|
sdk: sdk,
|
|
97
95
|
hasCardEditActions: true,
|
|
98
96
|
viewType: "card",
|
|
99
|
-
// @ts-expect-error unused...
|
|
100
97
|
parameters: {}
|
|
101
98
|
}));
|
|
102
99
|
const button = await _react1.screen.findByText('Add existing content');
|
|
103
100
|
expect(button).toBeDefined();
|
|
104
101
|
_react1.fireEvent.click(button);
|
|
105
|
-
// @ts-expect-error wait app-sdk version update
|
|
106
102
|
const dialogFn = sdk.dialogs.selectMultipleResourceEntries;
|
|
107
103
|
expect(dialogFn).toHaveBeenCalledTimes(1);
|
|
108
104
|
const options = dialogFn.mock.calls[0][0];
|
|
@@ -112,14 +108,13 @@ describe('Multiple resource editor', ()=>{
|
|
|
112
108
|
});
|
|
113
109
|
it('renders custom actions when passed', async ()=>{
|
|
114
110
|
const sdk = (0, _resourceEditorHelpers.mockSdkForField)(fieldDefinition);
|
|
115
|
-
(0, _react1.render)(
|
|
111
|
+
(0, _react1.render)(_react.createElement(_MultipleResourceReferenceEditor.MultipleResourceReferenceEditor, {
|
|
116
112
|
isInitiallyDisabled: false,
|
|
117
113
|
sdk: sdk,
|
|
118
114
|
hasCardEditActions: true,
|
|
119
115
|
viewType: "card",
|
|
120
|
-
// @ts-expect-error unused...
|
|
121
116
|
parameters: {},
|
|
122
|
-
renderCustomActions: ()
|
|
117
|
+
renderCustomActions: ()=>_react.createElement("div", {
|
|
123
118
|
"data-testid": "custom-actions"
|
|
124
119
|
})
|
|
125
120
|
}));
|
|
@@ -128,24 +123,22 @@ describe('Multiple resource editor', ()=>{
|
|
|
128
123
|
});
|
|
129
124
|
describe('with value', ()=>{
|
|
130
125
|
it('renders the cards', async ()=>{
|
|
131
|
-
const { entryLinks, entryInfos
|
|
126
|
+
const { entryLinks , entryInfos } = generateMultipleTestResources();
|
|
132
127
|
mockedResources = {};
|
|
133
128
|
for (const [spaceId, link] of Object.entries(entryLinks)){
|
|
134
129
|
mockedResources[`${link.sys.linkType}.${link.sys.urn}`] = entryInfos[spaceId];
|
|
135
130
|
}
|
|
136
131
|
const sdk = (0, _resourceEditorHelpers.mockSdkForField)(fieldDefinition, Object.values(entryLinks));
|
|
137
|
-
(0, _react1.render)(
|
|
132
|
+
(0, _react1.render)(_react.createElement(_MultipleResourceReferenceEditor.MultipleResourceReferenceEditor, {
|
|
138
133
|
isInitiallyDisabled: false,
|
|
139
134
|
sdk: sdk,
|
|
140
135
|
hasCardEditActions: true,
|
|
141
136
|
viewType: "card",
|
|
142
137
|
apiUrl: "test-contentful",
|
|
143
138
|
getEntryRouteHref: ()=>'',
|
|
144
|
-
// @ts-expect-error unused...
|
|
145
139
|
parameters: {}
|
|
146
140
|
}));
|
|
147
141
|
expect(_EntityStore.useResource).toHaveBeenCalledTimes(Object.values(entryInfos).length);
|
|
148
|
-
// ensure the card is rendered for every value
|
|
149
142
|
const cards = [];
|
|
150
143
|
const entriesArray = Object.values(entryInfos);
|
|
151
144
|
for (const info of Array.from(entriesArray.values())){
|
|
@@ -157,58 +150,49 @@ describe('Multiple resource editor', ()=>{
|
|
|
157
150
|
});
|
|
158
151
|
describe('card actions', ()=>{
|
|
159
152
|
it('should have a move to top button', async ()=>{
|
|
160
|
-
const { entryLinks, entryInfos
|
|
153
|
+
const { entryLinks , entryInfos } = generateMultipleTestResources();
|
|
161
154
|
mockedResources = {};
|
|
162
155
|
for (const [spaceId, link] of Object.entries(entryLinks)){
|
|
163
156
|
mockedResources[`${link.sys.linkType}.${link.sys.urn}`] = entryInfos[spaceId];
|
|
164
157
|
}
|
|
165
158
|
const sdk = (0, _resourceEditorHelpers.mockSdkForField)(fieldDefinition, Object.values(entryLinks));
|
|
166
|
-
(0, _react1.render)(
|
|
159
|
+
(0, _react1.render)(_react.createElement(_MultipleResourceReferenceEditor.MultipleResourceReferenceEditor, {
|
|
167
160
|
isInitiallyDisabled: false,
|
|
168
161
|
sdk: sdk,
|
|
169
162
|
hasCardEditActions: true,
|
|
170
163
|
viewType: "card",
|
|
171
164
|
apiUrl: "test-contentful",
|
|
172
165
|
getEntryRouteHref: ()=>'',
|
|
173
|
-
// @ts-expect-error unused...
|
|
174
166
|
parameters: {}
|
|
175
167
|
}));
|
|
176
|
-
// expect(useResource).toHaveBeenCalledTimes(Object.values(entryInfos).length);
|
|
177
|
-
// linking more is available
|
|
178
168
|
const linkExistingBtn = _react1.screen.queryByText('Add existing content');
|
|
179
169
|
expect(linkExistingBtn).toBeInTheDocument();
|
|
180
|
-
// ensure the card is rendered for every value
|
|
181
170
|
const entriesArray = Object.values(entryInfos);
|
|
182
171
|
const firstItem = entriesArray[0];
|
|
183
172
|
await expectToNotHaveMoveButton(firstItem, 'Move to top');
|
|
184
173
|
const allButFirst = entriesArray.slice(1);
|
|
185
|
-
// move actions are available
|
|
186
174
|
for (const info of allButFirst){
|
|
187
175
|
await expectToHaveMoveButton(info, 'Move to top');
|
|
188
176
|
}
|
|
189
177
|
});
|
|
190
178
|
it('should have a move to bottom button', async ()=>{
|
|
191
|
-
const { entryLinks, entryInfos
|
|
179
|
+
const { entryLinks , entryInfos } = generateMultipleTestResources();
|
|
192
180
|
mockedResources = {};
|
|
193
181
|
for (const [spaceId, link] of Object.entries(entryLinks)){
|
|
194
182
|
mockedResources[`${link.sys.linkType}.${link.sys.urn}`] = entryInfos[spaceId];
|
|
195
183
|
}
|
|
196
184
|
const sdk = (0, _resourceEditorHelpers.mockSdkForField)(fieldDefinition, Object.values(entryLinks));
|
|
197
|
-
(0, _react1.render)(
|
|
185
|
+
(0, _react1.render)(_react.createElement(_MultipleResourceReferenceEditor.MultipleResourceReferenceEditor, {
|
|
198
186
|
isInitiallyDisabled: false,
|
|
199
187
|
sdk: sdk,
|
|
200
188
|
hasCardEditActions: true,
|
|
201
189
|
viewType: "card",
|
|
202
190
|
apiUrl: "test-contentful",
|
|
203
191
|
getEntryRouteHref: ()=>'',
|
|
204
|
-
// @ts-expect-error unused...
|
|
205
192
|
parameters: {}
|
|
206
193
|
}));
|
|
207
|
-
// expect(useResource).toHaveBeenCalledTimes(Object.values(entryInfos).length);
|
|
208
|
-
// linking more is available
|
|
209
194
|
const linkExistingBtn = _react1.screen.queryByText('Add existing content');
|
|
210
195
|
expect(linkExistingBtn).toBeInTheDocument();
|
|
211
|
-
// ensure the card is rendered for every value
|
|
212
196
|
const entriesArray = Object.values(entryInfos);
|
|
213
197
|
const lastItem = entriesArray[entriesArray.length - 1];
|
|
214
198
|
await expectToNotHaveMoveButton(lastItem, 'Move to bottom');
|
|
@@ -218,27 +202,23 @@ describe('Multiple resource editor', ()=>{
|
|
|
218
202
|
}
|
|
219
203
|
});
|
|
220
204
|
it('works when using remove action', async ()=>{
|
|
221
|
-
const { entryLinks, entryInfos
|
|
205
|
+
const { entryLinks , entryInfos } = generateMultipleTestResources();
|
|
222
206
|
mockedResources = {};
|
|
223
207
|
for (const [spaceId, link] of Object.entries(entryLinks)){
|
|
224
208
|
mockedResources[`${link.sys.linkType}.${link.sys.urn}`] = entryInfos[spaceId];
|
|
225
209
|
}
|
|
226
210
|
const sdk = (0, _resourceEditorHelpers.mockSdkForField)(fieldDefinition, Object.values(entryLinks));
|
|
227
|
-
(0, _react1.render)(
|
|
211
|
+
(0, _react1.render)(_react.createElement(_MultipleResourceReferenceEditor.MultipleResourceReferenceEditor, {
|
|
228
212
|
isInitiallyDisabled: false,
|
|
229
213
|
sdk: sdk,
|
|
230
214
|
hasCardEditActions: true,
|
|
231
215
|
viewType: "card",
|
|
232
216
|
apiUrl: "test-contentful",
|
|
233
217
|
getEntryRouteHref: ()=>'',
|
|
234
|
-
// @ts-expect-error unused...
|
|
235
218
|
parameters: {}
|
|
236
219
|
}));
|
|
237
|
-
// expect(useResource).toHaveBeenCalledTimes(Object.values(entryInfos).length);
|
|
238
|
-
// linking more is available
|
|
239
220
|
const linkExistingBtn = _react1.screen.queryByText('Add existing content');
|
|
240
221
|
expect(linkExistingBtn).toBeInTheDocument();
|
|
241
|
-
// ensure the card is rendered for every value
|
|
242
222
|
const entriesArray = Object.values(entryInfos);
|
|
243
223
|
for (const info of entriesArray){
|
|
244
224
|
await clickCardActionsButton(info);
|
|
@@ -247,7 +227,6 @@ describe('Multiple resource editor', ()=>{
|
|
|
247
227
|
});
|
|
248
228
|
_react1.fireEvent.click(removeBtn);
|
|
249
229
|
}
|
|
250
|
-
// all cards were deleted
|
|
251
230
|
expect(sdk.field.setValue).toHaveBeenCalledTimes(3);
|
|
252
231
|
expect(sdk.field.setValue).toHaveBeenCalledWith([]);
|
|
253
232
|
});
|
|
@@ -8,9 +8,9 @@ Object.defineProperty(exports, "SingleResourceReferenceEditor", {
|
|
|
8
8
|
return SingleResourceReferenceEditor;
|
|
9
9
|
}
|
|
10
10
|
});
|
|
11
|
-
const _react =
|
|
11
|
+
const _react = _interop_require_wildcard(require("react"));
|
|
12
12
|
const _fieldeditorshared = require("@contentful/field-editor-shared");
|
|
13
|
-
const _deepequal =
|
|
13
|
+
const _deepequal = _interop_require_default(require("deep-equal"));
|
|
14
14
|
const _EntityStore = require("../common/EntityStore");
|
|
15
15
|
const _LinkEntityActions = require("../components/LinkActions/LinkEntityActions");
|
|
16
16
|
const _ResourceCard = require("./Cards/ResourceCard");
|
|
@@ -41,9 +41,7 @@ function _interop_require_wildcard(obj, nodeInterop) {
|
|
|
41
41
|
if (cache && cache.has(obj)) {
|
|
42
42
|
return cache.get(obj);
|
|
43
43
|
}
|
|
44
|
-
var newObj = {
|
|
45
|
-
__proto__: null
|
|
46
|
-
};
|
|
44
|
+
var newObj = {};
|
|
47
45
|
var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
|
|
48
46
|
for(var key in obj){
|
|
49
47
|
if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
|
|
@@ -62,26 +60,26 @@ function _interop_require_wildcard(obj, nodeInterop) {
|
|
|
62
60
|
return newObj;
|
|
63
61
|
}
|
|
64
62
|
function SingleResourceReferenceEditor(props) {
|
|
65
|
-
const { dialogs, field
|
|
63
|
+
const { dialogs , field } = props.sdk;
|
|
66
64
|
const linkActionsProps = (0, _useResourceLinkActions.useResourceLinkActions)({
|
|
67
65
|
dialogs,
|
|
68
66
|
field,
|
|
69
67
|
apiUrl: props.apiUrl
|
|
70
68
|
});
|
|
71
|
-
return
|
|
69
|
+
return _react.createElement(_EntityStore.EntityProvider, {
|
|
72
70
|
sdk: props.sdk
|
|
73
|
-
},
|
|
71
|
+
}, _react.createElement(_fieldeditorshared.FieldConnector, {
|
|
74
72
|
debounce: 0,
|
|
75
73
|
field: props.sdk.field,
|
|
76
74
|
isInitiallyDisabled: props.isInitiallyDisabled,
|
|
77
75
|
isEqualValues: _deepequal.default
|
|
78
|
-
}, ({ value, disabled
|
|
79
|
-
return value ?
|
|
76
|
+
}, ({ value , disabled })=>{
|
|
77
|
+
return value ? _react.createElement(_ResourceCard.ResourceCard, {
|
|
80
78
|
onRemove: ()=>props.sdk.field.removeValue(),
|
|
81
79
|
resourceLink: value,
|
|
82
80
|
isDisabled: disabled,
|
|
83
81
|
getEntryRouteHref: props.getEntryRouteHref
|
|
84
|
-
}) :
|
|
82
|
+
}) : _react.createElement(_LinkEntityActions.CombinedLinkEntityActions, {
|
|
85
83
|
...linkActionsProps,
|
|
86
84
|
renderCustomActions: props.renderCustomActions
|
|
87
85
|
});
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", {
|
|
3
3
|
value: true
|
|
4
4
|
});
|
|
5
|
-
const _react =
|
|
5
|
+
const _react = _interop_require_wildcard(require("react"));
|
|
6
6
|
require("@testing-library/jest-dom/extend-expect");
|
|
7
7
|
const _react1 = require("@testing-library/react");
|
|
8
8
|
const _EntityStore = require("../common/EntityStore");
|
|
@@ -29,9 +29,7 @@ function _interop_require_wildcard(obj, nodeInterop) {
|
|
|
29
29
|
if (cache && cache.has(obj)) {
|
|
30
30
|
return cache.get(obj);
|
|
31
31
|
}
|
|
32
|
-
var newObj = {
|
|
33
|
-
__proto__: null
|
|
34
|
-
};
|
|
32
|
+
var newObj = {};
|
|
35
33
|
var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
|
|
36
34
|
for(var key in obj){
|
|
37
35
|
if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
|
|
@@ -87,18 +85,16 @@ const fieldDefinition = {
|
|
|
87
85
|
describe('Single resource editor', ()=>{
|
|
88
86
|
it('renders the action button when no value is set', async ()=>{
|
|
89
87
|
const sdk = (0, _resourceEditorHelpers.mockSdkForField)(fieldDefinition);
|
|
90
|
-
(0, _react1.render)(
|
|
88
|
+
(0, _react1.render)(_react.createElement(_SingleResourceReferenceEditor.SingleResourceReferenceEditor, {
|
|
91
89
|
isInitiallyDisabled: false,
|
|
92
90
|
sdk: sdk,
|
|
93
91
|
hasCardEditActions: true,
|
|
94
92
|
viewType: "card",
|
|
95
|
-
// @ts-expect-error unused...
|
|
96
93
|
parameters: {}
|
|
97
94
|
}));
|
|
98
95
|
const button = await _react1.screen.findByText('Add existing content');
|
|
99
96
|
expect(button).toBeDefined();
|
|
100
97
|
_react1.fireEvent.click(button);
|
|
101
|
-
// @ts-expect-error wait app-sdk version update
|
|
102
98
|
const dialogFn = sdk.dialogs.selectSingleResourceEntry;
|
|
103
99
|
expect(dialogFn).toHaveBeenCalledTimes(1);
|
|
104
100
|
const options = dialogFn.mock.calls[0][0];
|
|
@@ -108,14 +104,13 @@ describe('Single resource editor', ()=>{
|
|
|
108
104
|
});
|
|
109
105
|
it('renders custom actions when passed', async ()=>{
|
|
110
106
|
const sdk = (0, _resourceEditorHelpers.mockSdkForField)(fieldDefinition);
|
|
111
|
-
(0, _react1.render)(
|
|
107
|
+
(0, _react1.render)(_react.createElement(_SingleResourceReferenceEditor.SingleResourceReferenceEditor, {
|
|
112
108
|
isInitiallyDisabled: false,
|
|
113
109
|
sdk: sdk,
|
|
114
110
|
hasCardEditActions: true,
|
|
115
111
|
viewType: "card",
|
|
116
|
-
// @ts-expect-error unused...
|
|
117
112
|
parameters: {},
|
|
118
|
-
renderCustomActions: ()
|
|
113
|
+
renderCustomActions: ()=>_react.createElement("div", {
|
|
119
114
|
"data-testid": "custom-actions"
|
|
120
115
|
})
|
|
121
116
|
}));
|
|
@@ -139,18 +134,16 @@ describe('Single resource editor', ()=>{
|
|
|
139
134
|
}
|
|
140
135
|
});
|
|
141
136
|
mockedResources[`Contentful:Entry.crn:test:::content:spaces/x-space/entries/linkedEntryId`] = info;
|
|
142
|
-
(0, _react1.render)(
|
|
137
|
+
(0, _react1.render)(_react.createElement(_SingleResourceReferenceEditor.SingleResourceReferenceEditor, {
|
|
143
138
|
isInitiallyDisabled: false,
|
|
144
139
|
sdk: sdk,
|
|
145
140
|
hasCardEditActions: true,
|
|
146
141
|
viewType: "card",
|
|
147
142
|
apiUrl: "test-contentful",
|
|
148
143
|
getEntryRouteHref: jest.fn(),
|
|
149
|
-
// @ts-expect-error unused...
|
|
150
144
|
parameters: {}
|
|
151
145
|
}));
|
|
152
146
|
expect(_EntityStore.useResource).toHaveBeenCalled();
|
|
153
|
-
// ensure the card is rendered
|
|
154
147
|
const title = await _react1.screen.findByText('Title of linked entry');
|
|
155
148
|
await _react1.screen.findByText('X Space');
|
|
156
149
|
const theCard = title.closest('[data-test-id="cf-ui-entry-card"]');
|