@contentful/field-editor-reference 8.3.1-canary.0 → 8.3.2-canary.3
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/common/useEditorPermissions.spec.js +31 -30
- package/dist/cjs/components/CreateEntryLinkButton/CreateEntryLinkButton.spec.js +48 -48
- package/dist/cjs/components/CreateEntryLinkButton/CreateEntryMenuTrigger.spec.js +32 -32
- package/dist/cjs/components/ScheduledIconWithTooltip/formatDateAndTime.spec.js +44 -43
- package/dist/cjs/resources/Cards/ResourceCard.spec.js +50 -50
- package/dist/cjs/resources/MultipleResourceReferenceEditor.spec.js +36 -36
- package/dist/cjs/resources/SingleResourceReferenceEditor.spec.js +26 -26
- package/dist/cjs/resources/testHelpers/resourceEditorHelpers.js +6 -5
- package/dist/cjs/utils/getProviderName.spec.js +6 -5
- package/dist/esm/common/useEditorPermissions.spec.js +3 -2
- package/dist/esm/components/CreateEntryLinkButton/CreateEntryLinkButton.spec.js +7 -7
- package/dist/esm/components/CreateEntryLinkButton/CreateEntryMenuTrigger.spec.js +5 -5
- package/dist/esm/components/ScheduledIconWithTooltip/formatDateAndTime.spec.js +4 -3
- package/dist/esm/resources/Cards/ResourceCard.spec.js +12 -12
- package/dist/esm/resources/MultipleResourceReferenceEditor.spec.js +10 -10
- package/dist/esm/resources/SingleResourceReferenceEditor.spec.js +11 -11
- package/dist/esm/resources/testHelpers/resourceEditorHelpers.js +6 -5
- package/dist/esm/utils/getProviderName.spec.js +1 -0
- package/dist/types/components/CreateEntryLinkButton/CreateEntryLinkButton.spec.d.ts +1 -1
- package/dist/types/components/CreateEntryLinkButton/CreateEntryMenuTrigger.spec.d.ts +1 -1
- package/dist/types/resources/Cards/ResourceCard.spec.d.ts +1 -1
- package/dist/types/resources/MultipleResourceReferenceEditor.spec.d.ts +1 -1
- package/dist/types/resources/SingleResourceReferenceEditor.spec.d.ts +1 -1
- package/package.json +6 -6
|
@@ -3,11 +3,11 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
3
3
|
value: true
|
|
4
4
|
});
|
|
5
5
|
const _react = /*#__PURE__*/ _interop_require_wildcard(require("react"));
|
|
6
|
-
require("@testing-library/jest-dom");
|
|
7
6
|
const _reactquery = require("@contentful/field-editor-shared/react-query");
|
|
8
7
|
const _fieldeditortestutils = require("@contentful/field-editor-test-utils");
|
|
9
8
|
const _react1 = require("@testing-library/react");
|
|
10
9
|
const _userevent = /*#__PURE__*/ _interop_require_default(require("@testing-library/user-event"));
|
|
10
|
+
const _vitest = require("vitest");
|
|
11
11
|
const _published_content_typejson = /*#__PURE__*/ _interop_require_default(require("../../__fixtures__/content-type/published_content_type.json"));
|
|
12
12
|
const _published_entry_non_masterjson = /*#__PURE__*/ _interop_require_default(require("../../__fixtures__/entry/published_entry_non_master.json"));
|
|
13
13
|
const _published_entryjson = /*#__PURE__*/ _interop_require_default(require("../../__fixtures__/entry/published_entry.json"));
|
|
@@ -65,8 +65,8 @@ function _interop_require_wildcard(obj, nodeInterop) {
|
|
|
65
65
|
(0, _react1.configure)({
|
|
66
66
|
testIdAttribute: 'data-test-id'
|
|
67
67
|
});
|
|
68
|
-
|
|
69
|
-
useInView:
|
|
68
|
+
_vitest.vi.mock('react-intersection-observer', ()=>({
|
|
69
|
+
useInView: _vitest.vi.fn().mockReturnValue({})
|
|
70
70
|
}));
|
|
71
71
|
const resolvableEntryUrn = 'crn:contentful:::content:spaces/space-id/entries/linked-entry-urn';
|
|
72
72
|
const resolvableEntryUrnWithExplicitMaster = 'crn:contentful:::content:spaces/space-id/environments/master/entries/linked-entry-urn';
|
|
@@ -81,10 +81,10 @@ const sdk = {
|
|
|
81
81
|
},
|
|
82
82
|
cma: {
|
|
83
83
|
contentType: {
|
|
84
|
-
get:
|
|
84
|
+
get: _vitest.vi.fn().mockReturnValue(_published_content_typejson.default)
|
|
85
85
|
},
|
|
86
86
|
entry: {
|
|
87
|
-
get:
|
|
87
|
+
get: _vitest.vi.fn().mockImplementation(({ spaceId, environmentId, entryId })=>{
|
|
88
88
|
if (spaceId === 'space-id' && environmentId === 'master' && entryId === 'linked-entry-urn') {
|
|
89
89
|
return Promise.resolve(_published_entryjson.default);
|
|
90
90
|
}
|
|
@@ -95,7 +95,7 @@ const sdk = {
|
|
|
95
95
|
})
|
|
96
96
|
},
|
|
97
97
|
locale: {
|
|
98
|
-
getMany:
|
|
98
|
+
getMany: _vitest.vi.fn().mockResolvedValue({
|
|
99
99
|
items: [
|
|
100
100
|
{
|
|
101
101
|
default: true,
|
|
@@ -105,7 +105,7 @@ const sdk = {
|
|
|
105
105
|
})
|
|
106
106
|
},
|
|
107
107
|
resource: {
|
|
108
|
-
getMany:
|
|
108
|
+
getMany: _vitest.vi.fn().mockImplementation(({ spaceId, environmentId, resourceTypeId, query })=>{
|
|
109
109
|
if (spaceId === 'space-id' && environmentId === 'environment-id' && resourceTypeId === resolvableExternalResourceType && query['sys.urn[in]'] === resolvableExternalEntityUrn) {
|
|
110
110
|
return Promise.resolve({
|
|
111
111
|
items: [
|
|
@@ -125,7 +125,7 @@ const sdk = {
|
|
|
125
125
|
})
|
|
126
126
|
},
|
|
127
127
|
resourceType: {
|
|
128
|
-
getForEnvironment:
|
|
128
|
+
getForEnvironment: _vitest.vi.fn().mockImplementation(({ spaceId, environmentId })=>{
|
|
129
129
|
console.log('>> getForEnvironment', {
|
|
130
130
|
spaceId,
|
|
131
131
|
environmentId
|
|
@@ -144,16 +144,16 @@ const sdk = {
|
|
|
144
144
|
})
|
|
145
145
|
},
|
|
146
146
|
scheduledActions: {
|
|
147
|
-
getMany:
|
|
147
|
+
getMany: _vitest.vi.fn().mockResolvedValue({
|
|
148
148
|
items: [],
|
|
149
149
|
total: 0
|
|
150
150
|
})
|
|
151
151
|
},
|
|
152
152
|
space: {
|
|
153
|
-
get:
|
|
153
|
+
get: _vitest.vi.fn().mockResolvedValue(_indifferent_spacejson.default)
|
|
154
154
|
},
|
|
155
155
|
resourceProvider: {
|
|
156
|
-
get:
|
|
156
|
+
get: _vitest.vi.fn().mockImplementation(()=>{
|
|
157
157
|
return Promise.resolve({
|
|
158
158
|
function: {
|
|
159
159
|
sys: {
|
|
@@ -165,7 +165,7 @@ const sdk = {
|
|
|
165
165
|
}
|
|
166
166
|
},
|
|
167
167
|
space: {
|
|
168
|
-
onEntityChanged:
|
|
168
|
+
onEntityChanged: _vitest.vi.fn()
|
|
169
169
|
},
|
|
170
170
|
navigator: {},
|
|
171
171
|
ids: {
|
|
@@ -188,45 +188,45 @@ function renderResourceCard({ linkType = 'Contentful:Entry', entityUrn = resolva
|
|
|
188
188
|
}
|
|
189
189
|
})));
|
|
190
190
|
}
|
|
191
|
-
describe('ResourceCard', ()=>{
|
|
192
|
-
it('renders entry card with implicit master crn', async ()=>{
|
|
191
|
+
(0, _vitest.describe)('ResourceCard', ()=>{
|
|
192
|
+
(0, _vitest.it)('renders entry card with implicit master crn', async ()=>{
|
|
193
193
|
const { getByTestId, getByText } = renderResourceCard();
|
|
194
194
|
const tooltipContent = `Space: ${_indifferent_spacejson.default.name} (Env.: ${_published_entryjson.default.sys.environment.sys.id})`;
|
|
195
|
-
await (0, _react1.waitFor)(()=>expect(getByTestId('cf-ui-entry-card')).toBeDefined());
|
|
196
|
-
expect(getByText(_published_entryjson.default.fields.exField['en-US'])).toBeDefined();
|
|
197
|
-
expect(getByText(_indifferent_spacejson.default.name)).toBeDefined();
|
|
195
|
+
await (0, _react1.waitFor)(()=>(0, _vitest.expect)(getByTestId('cf-ui-entry-card')).toBeDefined());
|
|
196
|
+
(0, _vitest.expect)(getByText(_published_entryjson.default.fields.exField['en-US'])).toBeDefined();
|
|
197
|
+
(0, _vitest.expect)(getByText(_indifferent_spacejson.default.name)).toBeDefined();
|
|
198
198
|
_userevent.default.hover(getByText(_indifferent_spacejson.default.name));
|
|
199
199
|
await (0, _react1.waitFor)(()=>{
|
|
200
|
-
expect(getByText(tooltipContent)).toBeVisible();
|
|
200
|
+
(0, _vitest.expect)(getByText(tooltipContent)).toBeVisible();
|
|
201
201
|
});
|
|
202
202
|
});
|
|
203
|
-
it('renders entry card with explicit master crn', async ()=>{
|
|
203
|
+
(0, _vitest.it)('renders entry card with explicit master crn', async ()=>{
|
|
204
204
|
const { getByTestId, getByText } = renderResourceCard({
|
|
205
205
|
entityUrn: resolvableEntryUrnWithExplicitMaster
|
|
206
206
|
});
|
|
207
207
|
const tooltipContent = `Space: ${_indifferent_spacejson.default.name} (Env.: ${_published_entryjson.default.sys.environment.sys.id})`;
|
|
208
|
-
await (0, _react1.waitFor)(()=>expect(getByTestId('cf-ui-entry-card')).toBeDefined());
|
|
209
|
-
expect(getByText(_published_entryjson.default.fields.exField['en-US'])).toBeDefined();
|
|
210
|
-
expect(getByText(_indifferent_spacejson.default.name)).toBeDefined();
|
|
208
|
+
await (0, _react1.waitFor)(()=>(0, _vitest.expect)(getByTestId('cf-ui-entry-card')).toBeDefined());
|
|
209
|
+
(0, _vitest.expect)(getByText(_published_entryjson.default.fields.exField['en-US'])).toBeDefined();
|
|
210
|
+
(0, _vitest.expect)(getByText(_indifferent_spacejson.default.name)).toBeDefined();
|
|
211
211
|
_userevent.default.hover(getByText(_indifferent_spacejson.default.name));
|
|
212
212
|
await (0, _react1.waitFor)(()=>{
|
|
213
|
-
expect(getByText(tooltipContent)).toBeVisible();
|
|
213
|
+
(0, _vitest.expect)(getByText(tooltipContent)).toBeVisible();
|
|
214
214
|
});
|
|
215
215
|
});
|
|
216
|
-
it('renders entry card with a non master environment', async ()=>{
|
|
216
|
+
(0, _vitest.it)('renders entry card with a non master environment', async ()=>{
|
|
217
217
|
const { getByTestId, getByText } = renderResourceCard({
|
|
218
218
|
entityUrn: resolvableEntryUrnWithAnotherEnvironment
|
|
219
219
|
});
|
|
220
|
-
await (0, _react1.waitFor)(()=>expect(getByTestId('cf-ui-entry-card')).toBeDefined());
|
|
220
|
+
await (0, _react1.waitFor)(()=>(0, _vitest.expect)(getByTestId('cf-ui-entry-card')).toBeDefined());
|
|
221
221
|
const tooltipContent = `Space: ${_indifferent_spacejson.default.name} (Env.: ${_published_entry_non_masterjson.default.sys.environment.sys.id})`;
|
|
222
|
-
expect(getByText(_published_entry_non_masterjson.default.fields.exField['en-US'])).toBeDefined();
|
|
223
|
-
expect(getByText(_indifferent_spacejson.default.name)).toBeDefined();
|
|
222
|
+
(0, _vitest.expect)(getByText(_published_entry_non_masterjson.default.fields.exField['en-US'])).toBeDefined();
|
|
223
|
+
(0, _vitest.expect)(getByText(_indifferent_spacejson.default.name)).toBeDefined();
|
|
224
224
|
_userevent.default.hover(getByText(_indifferent_spacejson.default.name));
|
|
225
225
|
await (0, _react1.waitFor)(()=>{
|
|
226
|
-
expect(getByText(tooltipContent)).toBeVisible();
|
|
226
|
+
(0, _vitest.expect)(getByText(tooltipContent)).toBeVisible();
|
|
227
227
|
});
|
|
228
228
|
});
|
|
229
|
-
it('renders skeleton while data is loading', async ()=>{
|
|
229
|
+
(0, _vitest.it)('renders skeleton while data is loading', async ()=>{
|
|
230
230
|
const queryClient = (0, _fieldeditortestutils.createTestQueryClient)();
|
|
231
231
|
let resolveEntry;
|
|
232
232
|
const pendingPromise = new Promise((resolve)=>{
|
|
@@ -248,54 +248,54 @@ describe('ResourceCard', ()=>{
|
|
|
248
248
|
}
|
|
249
249
|
}
|
|
250
250
|
}))));
|
|
251
|
-
expect(getByTestId('cf-ui-skeleton-form')).toBeDefined();
|
|
252
|
-
expect(queryByTestId('cf-ui-entry-card')).toBeNull();
|
|
251
|
+
(0, _vitest.expect)(getByTestId('cf-ui-skeleton-form')).toBeDefined();
|
|
252
|
+
(0, _vitest.expect)(queryByTestId('cf-ui-entry-card')).toBeNull();
|
|
253
253
|
resolveEntry(_published_entryjson.default);
|
|
254
|
-
await (0, _react1.waitFor)(()=>expect(getByTestId('cf-ui-entry-card')).toBeDefined());
|
|
255
|
-
expect(queryByTestId('cf-ui-skeleton-form')).toBeNull();
|
|
254
|
+
await (0, _react1.waitFor)(()=>(0, _vitest.expect)(getByTestId('cf-ui-entry-card')).toBeDefined());
|
|
255
|
+
(0, _vitest.expect)(queryByTestId('cf-ui-skeleton-form')).toBeNull();
|
|
256
256
|
});
|
|
257
|
-
it('renders unsupported entity card when resource type is unknown', async ()=>{
|
|
257
|
+
(0, _vitest.it)('renders unsupported entity card when resource type is unknown', async ()=>{
|
|
258
258
|
const { getByText } = renderResourceCard({
|
|
259
259
|
linkType: 'Contentful:UnsupportedLink'
|
|
260
260
|
});
|
|
261
|
-
await (0, _react1.waitFor)(()=>expect(getByText('Unsupported API information')).toBeDefined());
|
|
261
|
+
await (0, _react1.waitFor)(()=>(0, _vitest.expect)(getByText('Unsupported API information')).toBeDefined());
|
|
262
262
|
});
|
|
263
|
-
it('renders missing entity card when unknown error is returned', async ()=>{
|
|
263
|
+
(0, _vitest.it)('renders missing entity card when unknown error is returned', async ()=>{
|
|
264
264
|
const { getByTestId } = renderResourceCard({
|
|
265
265
|
entityUrn: unknownEntryUrn
|
|
266
266
|
});
|
|
267
|
-
await (0, _react1.waitFor)(()=>expect(getByTestId('cf-ui-missing-entity-card')).toBeDefined());
|
|
267
|
+
await (0, _react1.waitFor)(()=>(0, _vitest.expect)(getByTestId('cf-ui-missing-entity-card')).toBeDefined());
|
|
268
268
|
});
|
|
269
|
-
it('renders missing entity card when crn is invalid', async ()=>{
|
|
269
|
+
(0, _vitest.it)('renders missing entity card when crn is invalid', async ()=>{
|
|
270
270
|
const { getByTestId, getByText } = renderResourceCard({
|
|
271
271
|
entityUrn: ''
|
|
272
272
|
});
|
|
273
|
-
await (0, _react1.waitFor)(()=>expect(getByTestId('cf-ui-missing-entity-card')).toBeDefined());
|
|
274
|
-
await (0, _react1.waitFor)(()=>expect(getByText('Content missing or inaccessible')).toBeDefined());
|
|
273
|
+
await (0, _react1.waitFor)(()=>(0, _vitest.expect)(getByTestId('cf-ui-missing-entity-card')).toBeDefined());
|
|
274
|
+
await (0, _react1.waitFor)(()=>(0, _vitest.expect)(getByText('Content missing or inaccessible')).toBeDefined());
|
|
275
275
|
});
|
|
276
|
-
it('renders missing entity card when external urn is invalid', async ()=>{
|
|
276
|
+
(0, _vitest.it)('renders missing entity card when external urn is invalid', async ()=>{
|
|
277
277
|
const { getByTestId, getByText } = renderResourceCard({
|
|
278
278
|
linkType: resolvableExternalResourceType,
|
|
279
279
|
entityUrn: ''
|
|
280
280
|
});
|
|
281
|
-
await (0, _react1.waitFor)(()=>expect(getByTestId('cf-ui-missing-entity-card')).toBeDefined());
|
|
282
|
-
await (0, _react1.waitFor)(()=>expect(getByText('Content missing or inaccessible')).toBeDefined());
|
|
281
|
+
await (0, _react1.waitFor)(()=>(0, _vitest.expect)(getByTestId('cf-ui-missing-entity-card')).toBeDefined());
|
|
282
|
+
await (0, _react1.waitFor)(()=>(0, _vitest.expect)(getByText('Content missing or inaccessible')).toBeDefined());
|
|
283
283
|
});
|
|
284
|
-
it('renders entry card for external resource', async ()=>{
|
|
284
|
+
(0, _vitest.it)('renders entry card for external resource', async ()=>{
|
|
285
285
|
const { getByTestId, getByText } = renderResourceCard({
|
|
286
286
|
linkType: resolvableExternalResourceType,
|
|
287
287
|
entityUrn: resolvableExternalEntityUrn
|
|
288
288
|
});
|
|
289
|
-
await (0, _react1.waitFor)(()=>expect(getByTestId('cf-ui-entry-card')).toBeDefined());
|
|
290
|
-
expect(getByText(_resourcejson.default.fields.title)).toBeDefined();
|
|
291
|
-
expect(getByText(`${_resourcetypejson.default.sys.resourceProvider.sys.id} ${_resourcetypejson.default.name}`)).toBeDefined();
|
|
289
|
+
await (0, _react1.waitFor)(()=>(0, _vitest.expect)(getByTestId('cf-ui-entry-card')).toBeDefined());
|
|
290
|
+
(0, _vitest.expect)(getByText(_resourcejson.default.fields.title)).toBeDefined();
|
|
291
|
+
(0, _vitest.expect)(getByText(`${_resourcetypejson.default.sys.resourceProvider.sys.id} ${_resourcetypejson.default.name}`)).toBeDefined();
|
|
292
292
|
});
|
|
293
|
-
it('renders function invocation error card when an external resource request fails', async ()=>{
|
|
293
|
+
(0, _vitest.it)('renders function invocation error card when an external resource request fails', async ()=>{
|
|
294
294
|
const { getByTestId } = renderResourceCard({
|
|
295
295
|
linkType: resolvableExternalResourceType,
|
|
296
296
|
entityUrn: unresolvableExternalEntityUrn
|
|
297
297
|
});
|
|
298
|
-
await (0, _react1.waitFor)(()=>expect(getByTestId('cf-ui-function-invocation-error-card')).toBeDefined());
|
|
299
|
-
await (0, _react1.waitFor)(()=>expect(getByTestId('cf-ui-function-invocation-log-link')).toBeDefined());
|
|
298
|
+
await (0, _react1.waitFor)(()=>(0, _vitest.expect)(getByTestId('cf-ui-function-invocation-error-card')).toBeDefined());
|
|
299
|
+
await (0, _react1.waitFor)(()=>(0, _vitest.expect)(getByTestId('cf-ui-function-invocation-log-link')).toBeDefined());
|
|
300
300
|
});
|
|
301
301
|
});
|
|
@@ -3,9 +3,9 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
3
3
|
value: true
|
|
4
4
|
});
|
|
5
5
|
const _react = /*#__PURE__*/ _interop_require_wildcard(require("react"));
|
|
6
|
-
require("@testing-library/jest-dom/extend-expect");
|
|
7
6
|
const _react1 = require("@testing-library/react");
|
|
8
7
|
const _userevent = /*#__PURE__*/ _interop_require_default(require("@testing-library/user-event"));
|
|
8
|
+
const _vitest = require("vitest");
|
|
9
9
|
const _EntityStore = require("../common/EntityStore");
|
|
10
10
|
const _useEditorPermissions = require("../common/useEditorPermissions");
|
|
11
11
|
const _MultipleResourceReferenceEditor = require("./MultipleResourceReferenceEditor");
|
|
@@ -57,26 +57,26 @@ function _interop_require_wildcard(obj, nodeInterop) {
|
|
|
57
57
|
return newObj;
|
|
58
58
|
}
|
|
59
59
|
let mockedResources = {};
|
|
60
|
-
|
|
61
|
-
const
|
|
60
|
+
_vitest.vi.mock('../common/EntityStore', async ()=>{
|
|
61
|
+
const actual = await _vitest.vi.importActual('../common/EntityStore');
|
|
62
62
|
return {
|
|
63
|
-
...
|
|
64
|
-
useResource:
|
|
63
|
+
...actual,
|
|
64
|
+
useResource: _vitest.vi.fn((linkType, urn, apiUrl)=>({
|
|
65
65
|
data: mockedResources[`${linkType}.${urn}`],
|
|
66
66
|
status: 'success',
|
|
67
67
|
apiUrl
|
|
68
68
|
}))
|
|
69
69
|
};
|
|
70
70
|
});
|
|
71
|
-
|
|
71
|
+
_vitest.vi.mock('../common/useEditorPermissions', ()=>{
|
|
72
72
|
return {
|
|
73
|
-
useEditorPermissions:
|
|
73
|
+
useEditorPermissions: _vitest.vi.fn()
|
|
74
74
|
};
|
|
75
75
|
});
|
|
76
|
-
|
|
77
|
-
const
|
|
76
|
+
_vitest.vi.mock('react-intersection-observer', async ()=>{
|
|
77
|
+
const actual = await _vitest.vi.importActual('react-intersection-observer');
|
|
78
78
|
return {
|
|
79
|
-
...
|
|
79
|
+
...actual,
|
|
80
80
|
useInView: ()=>({
|
|
81
81
|
inView: true
|
|
82
82
|
})
|
|
@@ -101,13 +101,13 @@ const fieldDefinition = {
|
|
|
101
101
|
validations: []
|
|
102
102
|
};
|
|
103
103
|
const mockedUseEditorPermissions = _useEditorPermissions.useEditorPermissions;
|
|
104
|
-
beforeEach(()=>{
|
|
104
|
+
(0, _vitest.beforeEach)(()=>{
|
|
105
105
|
mockedUseEditorPermissions.mockImplementation(()=>({
|
|
106
106
|
canLinkEntity: true
|
|
107
107
|
}));
|
|
108
108
|
});
|
|
109
|
-
describe('Multiple resource editor', ()=>{
|
|
110
|
-
it('renders the action button when no value is set', async ()=>{
|
|
109
|
+
(0, _vitest.describe)('Multiple resource editor', ()=>{
|
|
110
|
+
(0, _vitest.it)('renders the action button when no value is set', async ()=>{
|
|
111
111
|
const sdk = (0, _resourceEditorHelpers.mockSdkForField)(fieldDefinition);
|
|
112
112
|
(0, _react1.render)(/*#__PURE__*/ _react.createElement(_MultipleResourceReferenceEditor.MultipleResourceReferenceEditor, {
|
|
113
113
|
isInitiallyDisabled: false,
|
|
@@ -117,18 +117,18 @@ describe('Multiple resource editor', ()=>{
|
|
|
117
117
|
parameters: {}
|
|
118
118
|
}));
|
|
119
119
|
const button = await _react1.screen.findByText('Add existing content');
|
|
120
|
-
expect(button).toBeDefined();
|
|
120
|
+
(0, _vitest.expect)(button).toBeDefined();
|
|
121
121
|
_userevent.default.click(button);
|
|
122
122
|
const dialogFn = sdk.dialogs.selectMultipleResourceEntities;
|
|
123
|
-
expect(dialogFn).toHaveBeenCalledTimes(1);
|
|
123
|
+
(0, _vitest.expect)(dialogFn).toHaveBeenCalledTimes(1);
|
|
124
124
|
const options = dialogFn.mock.calls[0][0];
|
|
125
|
-
expect(options).toEqual({
|
|
125
|
+
(0, _vitest.expect)(options).toEqual({
|
|
126
126
|
allowedResources: fieldDefinition.allowedResources,
|
|
127
127
|
locale: 'en',
|
|
128
128
|
referencingEntryId: 'testEntry'
|
|
129
129
|
});
|
|
130
130
|
});
|
|
131
|
-
it('hides the action button when insufficient permissions', async ()=>{
|
|
131
|
+
(0, _vitest.it)('hides the action button when insufficient permissions', async ()=>{
|
|
132
132
|
mockedUseEditorPermissions.mockImplementation(()=>({
|
|
133
133
|
canLinkEntity: false
|
|
134
134
|
}));
|
|
@@ -142,9 +142,9 @@ describe('Multiple resource editor', ()=>{
|
|
|
142
142
|
parameters: {}
|
|
143
143
|
}));
|
|
144
144
|
const noPermission = await _react1.screen.findByText(/You don't have permission to view this content/);
|
|
145
|
-
expect(noPermission).toBeDefined();
|
|
145
|
+
(0, _vitest.expect)(noPermission).toBeDefined();
|
|
146
146
|
});
|
|
147
|
-
it('renders custom actions when passed', async ()=>{
|
|
147
|
+
(0, _vitest.it)('renders custom actions when passed', async ()=>{
|
|
148
148
|
const sdk = (0, _resourceEditorHelpers.mockSdkForField)(fieldDefinition);
|
|
149
149
|
(0, _react1.render)(/*#__PURE__*/ _react.createElement(_MultipleResourceReferenceEditor.MultipleResourceReferenceEditor, {
|
|
150
150
|
isInitiallyDisabled: false,
|
|
@@ -157,10 +157,10 @@ describe('Multiple resource editor', ()=>{
|
|
|
157
157
|
})
|
|
158
158
|
}));
|
|
159
159
|
const customActions = await _react1.screen.findByTestId('custom-actions');
|
|
160
|
-
expect(customActions).toBeDefined();
|
|
160
|
+
(0, _vitest.expect)(customActions).toBeDefined();
|
|
161
161
|
});
|
|
162
|
-
describe('with value', ()=>{
|
|
163
|
-
it('renders the cards', async ()=>{
|
|
162
|
+
(0, _vitest.describe)('with value', ()=>{
|
|
163
|
+
(0, _vitest.it)('renders the cards', async ()=>{
|
|
164
164
|
const { entryLinks, entryInfos } = generateMultipleTestResources();
|
|
165
165
|
mockedResources = {};
|
|
166
166
|
for (const [spaceId, link] of Object.entries(entryLinks)){
|
|
@@ -176,7 +176,7 @@ describe('Multiple resource editor', ()=>{
|
|
|
176
176
|
getEntryRouteHref: ()=>'',
|
|
177
177
|
parameters: {}
|
|
178
178
|
}));
|
|
179
|
-
expect(_EntityStore.useResource).toHaveBeenCalledTimes(Object.values(entryInfos).length);
|
|
179
|
+
(0, _vitest.expect)(_EntityStore.useResource).toHaveBeenCalledTimes(Object.values(entryInfos).length);
|
|
180
180
|
const cards = [];
|
|
181
181
|
const entriesArray = Object.values(entryInfos);
|
|
182
182
|
for (const info of Array.from(entriesArray.values())){
|
|
@@ -186,8 +186,8 @@ describe('Multiple resource editor', ()=>{
|
|
|
186
186
|
cards.push(card);
|
|
187
187
|
}
|
|
188
188
|
});
|
|
189
|
-
describe('card actions', ()=>{
|
|
190
|
-
it('should have a move to top button', async ()=>{
|
|
189
|
+
(0, _vitest.describe)('card actions', ()=>{
|
|
190
|
+
(0, _vitest.it)('should have a move to top button', async ()=>{
|
|
191
191
|
const { entryLinks, entryInfos } = generateMultipleTestResources();
|
|
192
192
|
mockedResources = {};
|
|
193
193
|
for (const [spaceId, link] of Object.entries(entryLinks)){
|
|
@@ -204,7 +204,7 @@ describe('Multiple resource editor', ()=>{
|
|
|
204
204
|
parameters: {}
|
|
205
205
|
}));
|
|
206
206
|
const linkExistingBtn = _react1.screen.queryByText('Add existing content');
|
|
207
|
-
expect(linkExistingBtn).toBeInTheDocument();
|
|
207
|
+
(0, _vitest.expect)(linkExistingBtn).toBeInTheDocument();
|
|
208
208
|
const entriesArray = Object.values(entryInfos);
|
|
209
209
|
const firstItem = entriesArray[0];
|
|
210
210
|
await expectToNotHaveMoveButton(firstItem, 'Move to top');
|
|
@@ -213,7 +213,7 @@ describe('Multiple resource editor', ()=>{
|
|
|
213
213
|
await expectToHaveMoveButton(info, 'Move to top');
|
|
214
214
|
}
|
|
215
215
|
});
|
|
216
|
-
it('should have a move to bottom button', async ()=>{
|
|
216
|
+
(0, _vitest.it)('should have a move to bottom button', async ()=>{
|
|
217
217
|
const { entryLinks, entryInfos } = generateMultipleTestResources();
|
|
218
218
|
mockedResources = {};
|
|
219
219
|
for (const [spaceId, link] of Object.entries(entryLinks)){
|
|
@@ -230,7 +230,7 @@ describe('Multiple resource editor', ()=>{
|
|
|
230
230
|
parameters: {}
|
|
231
231
|
}));
|
|
232
232
|
const linkExistingBtn = _react1.screen.queryByText('Add existing content');
|
|
233
|
-
expect(linkExistingBtn).toBeInTheDocument();
|
|
233
|
+
(0, _vitest.expect)(linkExistingBtn).toBeInTheDocument();
|
|
234
234
|
const entriesArray = Object.values(entryInfos);
|
|
235
235
|
const lastItem = entriesArray[entriesArray.length - 1];
|
|
236
236
|
await expectToNotHaveMoveButton(lastItem, 'Move to bottom');
|
|
@@ -239,7 +239,7 @@ describe('Multiple resource editor', ()=>{
|
|
|
239
239
|
await expectToHaveMoveButton(info, 'Move to bottom');
|
|
240
240
|
}
|
|
241
241
|
});
|
|
242
|
-
it('works when using remove action', async ()=>{
|
|
242
|
+
(0, _vitest.it)('works when using remove action', async ()=>{
|
|
243
243
|
const { entryLinks, entryInfos } = generateMultipleTestResources();
|
|
244
244
|
mockedResources = {};
|
|
245
245
|
for (const [spaceId, link] of Object.entries(entryLinks)){
|
|
@@ -256,7 +256,7 @@ describe('Multiple resource editor', ()=>{
|
|
|
256
256
|
parameters: {}
|
|
257
257
|
}));
|
|
258
258
|
const linkExistingBtn = _react1.screen.queryByText('Add existing content');
|
|
259
|
-
expect(linkExistingBtn).toBeInTheDocument();
|
|
259
|
+
(0, _vitest.expect)(linkExistingBtn).toBeInTheDocument();
|
|
260
260
|
const entriesArray = Object.values(entryInfos);
|
|
261
261
|
for (const info of entriesArray){
|
|
262
262
|
await clickCardActionsButton(info);
|
|
@@ -265,8 +265,8 @@ describe('Multiple resource editor', ()=>{
|
|
|
265
265
|
});
|
|
266
266
|
_userevent.default.click(removeBtn);
|
|
267
267
|
}
|
|
268
|
-
expect(sdk.field.setValue).toHaveBeenCalledTimes(3);
|
|
269
|
-
expect(sdk.field.setValue).toHaveBeenCalledWith([]);
|
|
268
|
+
(0, _vitest.expect)(sdk.field.setValue).toHaveBeenCalledTimes(3);
|
|
269
|
+
(0, _vitest.expect)(sdk.field.setValue).toHaveBeenCalledWith([]);
|
|
270
270
|
});
|
|
271
271
|
});
|
|
272
272
|
});
|
|
@@ -279,7 +279,7 @@ async function expectToHaveMoveButton(info, buttonString) {
|
|
|
279
279
|
}
|
|
280
280
|
async function expectToNotHaveMoveButton(info, buttonString) {
|
|
281
281
|
await clickCardActionsButton(info);
|
|
282
|
-
expect(_react1.screen.queryByText(buttonString, {
|
|
282
|
+
(0, _vitest.expect)(_react1.screen.queryByText(buttonString, {
|
|
283
283
|
selector: '[role="menuitem"]'
|
|
284
284
|
})).toBeNull();
|
|
285
285
|
}
|
|
@@ -289,16 +289,16 @@ async function clickCardActionsButton(info) {
|
|
|
289
289
|
const spaceName = info.space.name;
|
|
290
290
|
const card = await expectEntryCard(entryTitle, spaceName);
|
|
291
291
|
const actionsBtn = card.querySelector('[data-test-id="cf-ui-card-actions"]');
|
|
292
|
-
expect(actionsBtn).toBeInTheDocument();
|
|
292
|
+
(0, _vitest.expect)(actionsBtn).toBeInTheDocument();
|
|
293
293
|
_userevent.default.click(actionsBtn);
|
|
294
294
|
}
|
|
295
295
|
async function expectEntryCard(entryTitle, spaceName) {
|
|
296
296
|
const title = await _react1.screen.findByText(entryTitle);
|
|
297
297
|
await _react1.screen.findByText(spaceName);
|
|
298
298
|
const theCard = title.closest('[data-test-id="cf-ui-entry-card"]');
|
|
299
|
-
expect(theCard).toBeDefined();
|
|
299
|
+
(0, _vitest.expect)(theCard).toBeDefined();
|
|
300
300
|
const actionsBtn = theCard?.querySelector('[data-test-id="cf-ui-card-actions"]');
|
|
301
|
-
expect(actionsBtn).toBeDefined();
|
|
301
|
+
(0, _vitest.expect)(actionsBtn).toBeDefined();
|
|
302
302
|
return theCard;
|
|
303
303
|
}
|
|
304
304
|
function generateMultipleTestResources() {
|
|
@@ -3,8 +3,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
3
3
|
value: true
|
|
4
4
|
});
|
|
5
5
|
const _react = /*#__PURE__*/ _interop_require_wildcard(require("react"));
|
|
6
|
-
require("@testing-library/jest-dom/extend-expect");
|
|
7
6
|
const _react1 = require("@testing-library/react");
|
|
7
|
+
const _vitest = require("vitest");
|
|
8
8
|
const _EntityStore = require("../common/EntityStore");
|
|
9
9
|
const _useEditorPermissions = require("../common/useEditorPermissions");
|
|
10
10
|
const _SingleResourceReferenceEditor = require("./SingleResourceReferenceEditor");
|
|
@@ -51,28 +51,28 @@ function _interop_require_wildcard(obj, nodeInterop) {
|
|
|
51
51
|
return newObj;
|
|
52
52
|
}
|
|
53
53
|
const mockedResources = {};
|
|
54
|
-
|
|
55
|
-
const
|
|
54
|
+
_vitest.vi.mock('../common/EntityStore', async ()=>{
|
|
55
|
+
const actual = await _vitest.vi.importActual('../common/EntityStore');
|
|
56
56
|
return {
|
|
57
|
-
...
|
|
58
|
-
useResource:
|
|
57
|
+
...actual,
|
|
58
|
+
useResource: _vitest.vi.fn((linkType, urn)=>({
|
|
59
59
|
data: mockedResources[`${linkType}.${urn}`],
|
|
60
60
|
status: 'success'
|
|
61
61
|
}))
|
|
62
62
|
};
|
|
63
63
|
});
|
|
64
|
-
|
|
65
|
-
const
|
|
64
|
+
_vitest.vi.mock('react-intersection-observer', async ()=>{
|
|
65
|
+
const actual = await _vitest.vi.importActual('react-intersection-observer');
|
|
66
66
|
return {
|
|
67
|
-
...
|
|
67
|
+
...actual,
|
|
68
68
|
useInView: ()=>({
|
|
69
69
|
inView: true
|
|
70
70
|
})
|
|
71
71
|
};
|
|
72
72
|
});
|
|
73
|
-
|
|
73
|
+
_vitest.vi.mock('../common/useEditorPermissions', ()=>{
|
|
74
74
|
return {
|
|
75
|
-
useEditorPermissions:
|
|
75
|
+
useEditorPermissions: _vitest.vi.fn()
|
|
76
76
|
};
|
|
77
77
|
});
|
|
78
78
|
const fieldDefinition = {
|
|
@@ -91,13 +91,13 @@ const fieldDefinition = {
|
|
|
91
91
|
validations: []
|
|
92
92
|
};
|
|
93
93
|
const mockedUseEditorPermissions = _useEditorPermissions.useEditorPermissions;
|
|
94
|
-
beforeEach(()=>{
|
|
94
|
+
(0, _vitest.beforeEach)(()=>{
|
|
95
95
|
mockedUseEditorPermissions.mockImplementation(()=>({
|
|
96
96
|
canLinkEntity: true
|
|
97
97
|
}));
|
|
98
98
|
});
|
|
99
|
-
describe('Single resource editor', ()=>{
|
|
100
|
-
it('renders the action button when no value is set', async ()=>{
|
|
99
|
+
(0, _vitest.describe)('Single resource editor', ()=>{
|
|
100
|
+
(0, _vitest.it)('renders the action button when no value is set', async ()=>{
|
|
101
101
|
const sdk = (0, _resourceEditorHelpers.mockSdkForField)(fieldDefinition);
|
|
102
102
|
(0, _react1.render)(/*#__PURE__*/ _react.createElement(_SingleResourceReferenceEditor.SingleResourceReferenceEditor, {
|
|
103
103
|
isInitiallyDisabled: false,
|
|
@@ -107,18 +107,18 @@ describe('Single resource editor', ()=>{
|
|
|
107
107
|
parameters: {}
|
|
108
108
|
}));
|
|
109
109
|
const button = await _react1.screen.findByText('Add existing content');
|
|
110
|
-
expect(button).toBeDefined();
|
|
110
|
+
(0, _vitest.expect)(button).toBeDefined();
|
|
111
111
|
_react1.fireEvent.click(button);
|
|
112
112
|
const dialogFn = sdk.dialogs.selectSingleResourceEntity;
|
|
113
|
-
expect(dialogFn).toHaveBeenCalledTimes(1);
|
|
113
|
+
(0, _vitest.expect)(dialogFn).toHaveBeenCalledTimes(1);
|
|
114
114
|
const options = dialogFn.mock.calls[0][0];
|
|
115
|
-
expect(options).toEqual({
|
|
115
|
+
(0, _vitest.expect)(options).toEqual({
|
|
116
116
|
allowedResources: fieldDefinition.allowedResources,
|
|
117
117
|
locale: 'en',
|
|
118
118
|
referencingEntryId: 'testEntry'
|
|
119
119
|
});
|
|
120
120
|
});
|
|
121
|
-
it('renders no the action button when permissions insufficient', async ()=>{
|
|
121
|
+
(0, _vitest.it)('renders no the action button when permissions insufficient', async ()=>{
|
|
122
122
|
mockedUseEditorPermissions.mockImplementation(()=>({
|
|
123
123
|
canLinkEntity: false
|
|
124
124
|
}));
|
|
@@ -131,9 +131,9 @@ describe('Single resource editor', ()=>{
|
|
|
131
131
|
parameters: {}
|
|
132
132
|
}));
|
|
133
133
|
const noPermission = await _react1.screen.findByText(/You don't have permission to view this content/);
|
|
134
|
-
expect(noPermission).toBeDefined();
|
|
134
|
+
(0, _vitest.expect)(noPermission).toBeDefined();
|
|
135
135
|
});
|
|
136
|
-
it('renders custom actions when passed', async ()=>{
|
|
136
|
+
(0, _vitest.it)('renders custom actions when passed', async ()=>{
|
|
137
137
|
const sdk = (0, _resourceEditorHelpers.mockSdkForField)(fieldDefinition);
|
|
138
138
|
(0, _react1.render)(/*#__PURE__*/ _react.createElement(_SingleResourceReferenceEditor.SingleResourceReferenceEditor, {
|
|
139
139
|
isInitiallyDisabled: false,
|
|
@@ -146,9 +146,9 @@ describe('Single resource editor', ()=>{
|
|
|
146
146
|
})
|
|
147
147
|
}));
|
|
148
148
|
const customActions = await _react1.screen.findByTestId('custom-actions');
|
|
149
|
-
expect(customActions).toBeDefined();
|
|
149
|
+
(0, _vitest.expect)(customActions).toBeDefined();
|
|
150
150
|
});
|
|
151
|
-
it('renders the card button when the value is set', async ()=>{
|
|
151
|
+
(0, _vitest.it)('renders the card button when the value is set', async ()=>{
|
|
152
152
|
const sdk = (0, _resourceEditorHelpers.mockSdkForField)(fieldDefinition, {
|
|
153
153
|
sys: {
|
|
154
154
|
type: 'Link',
|
|
@@ -171,22 +171,22 @@ describe('Single resource editor', ()=>{
|
|
|
171
171
|
hasCardEditActions: true,
|
|
172
172
|
viewType: "card",
|
|
173
173
|
apiUrl: "test-contentful",
|
|
174
|
-
getEntryRouteHref:
|
|
174
|
+
getEntryRouteHref: _vitest.vi.fn(),
|
|
175
175
|
parameters: {}
|
|
176
176
|
}));
|
|
177
|
-
expect(_EntityStore.useResource).toHaveBeenCalled();
|
|
177
|
+
(0, _vitest.expect)(_EntityStore.useResource).toHaveBeenCalled();
|
|
178
178
|
const title = await _react1.screen.findByText('Title of linked entry');
|
|
179
179
|
await _react1.screen.findByText('X Space');
|
|
180
180
|
const theCard = title.closest('[data-test-id="cf-ui-entry-card"]');
|
|
181
181
|
const actionsBtn = theCard?.querySelector('[data-test-id="cf-ui-card-actions"]');
|
|
182
|
-
expect(actionsBtn).toBeDefined();
|
|
182
|
+
(0, _vitest.expect)(actionsBtn).toBeDefined();
|
|
183
183
|
_react1.fireEvent.click(actionsBtn);
|
|
184
184
|
const removeBtn = await _react1.screen.findByText('Remove', {
|
|
185
185
|
selector: '[role="menuitem"]'
|
|
186
186
|
});
|
|
187
187
|
_react1.fireEvent.click(removeBtn);
|
|
188
|
-
expect(sdk.field.removeValue).toHaveBeenCalledWith();
|
|
188
|
+
(0, _vitest.expect)(sdk.field.removeValue).toHaveBeenCalledWith();
|
|
189
189
|
const linkExistingBtn = _react1.screen.queryByText('Add existing content');
|
|
190
|
-
expect(linkExistingBtn).not.toBeInTheDocument();
|
|
190
|
+
(0, _vitest.expect)(linkExistingBtn).not.toBeInTheDocument();
|
|
191
191
|
});
|
|
192
192
|
});
|
|
@@ -16,12 +16,13 @@ _export(exports, {
|
|
|
16
16
|
return mockSdkForField;
|
|
17
17
|
}
|
|
18
18
|
});
|
|
19
|
+
const _vitest = require("vitest");
|
|
19
20
|
function mockSdkForField(fieldDefinition, fieldValue) {
|
|
20
21
|
return {
|
|
21
22
|
field: {
|
|
22
|
-
getValue:
|
|
23
|
-
setValue:
|
|
24
|
-
removeValue:
|
|
23
|
+
getValue: _vitest.vi.fn(()=>fieldValue),
|
|
24
|
+
setValue: _vitest.vi.fn(()=>Promise.resolve(undefined)),
|
|
25
|
+
removeValue: _vitest.vi.fn(),
|
|
25
26
|
onSchemaErrorsChanged: ()=>{},
|
|
26
27
|
onIsDisabledChanged: ()=>{},
|
|
27
28
|
getIsDisabled: ()=>false,
|
|
@@ -30,14 +31,14 @@ function mockSdkForField(fieldDefinition, fieldValue) {
|
|
|
30
31
|
locale: 'en'
|
|
31
32
|
},
|
|
32
33
|
dialogs: {
|
|
33
|
-
selectSingleResourceEntity:
|
|
34
|
+
selectSingleResourceEntity: _vitest.vi.fn().mockResolvedValue({
|
|
34
35
|
sys: {
|
|
35
36
|
type: 'ResourceLink',
|
|
36
37
|
linkType: 'Contentful:Entry',
|
|
37
38
|
urn: 'crn:contentful:::content:spaces/space-id/entries/example-entity-urn'
|
|
38
39
|
}
|
|
39
40
|
}),
|
|
40
|
-
selectMultipleResourceEntities:
|
|
41
|
+
selectMultipleResourceEntities: _vitest.vi.fn().mockResolvedValue([
|
|
41
42
|
{
|
|
42
43
|
sys: {
|
|
43
44
|
type: 'ResourceLink',
|
|
@@ -2,12 +2,13 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", {
|
|
3
3
|
value: true
|
|
4
4
|
});
|
|
5
|
+
const _vitest = require("vitest");
|
|
5
6
|
const _getProviderName = require("./getProviderName");
|
|
6
|
-
describe('getProviderName', ()=>{
|
|
7
|
-
it('should return undefined if Resource Link is not in format "Provider:ResourceType"', ()=>{
|
|
8
|
-
expect((0, _getProviderName.getProviderName)('This is not a correct resource link')).toBeUndefined();
|
|
7
|
+
(0, _vitest.describe)('getProviderName', ()=>{
|
|
8
|
+
(0, _vitest.it)('should return undefined if Resource Link is not in format "Provider:ResourceType"', ()=>{
|
|
9
|
+
(0, _vitest.expect)((0, _getProviderName.getProviderName)('This is not a correct resource link')).toBeUndefined();
|
|
9
10
|
});
|
|
10
|
-
it('should return the provider when format is Provider:ResourceType', ()=>{
|
|
11
|
-
expect((0, _getProviderName.getProviderName)('Provider:ResourceType')).toBe('Provider');
|
|
11
|
+
(0, _vitest.it)('should return the provider when format is Provider:ResourceType', ()=>{
|
|
12
|
+
(0, _vitest.expect)((0, _getProviderName.getProviderName)('Provider:ResourceType')).toBe('Provider');
|
|
12
13
|
});
|
|
13
14
|
});
|